erst filtern dann werte addieren

läuft leider nicht.
Bei der 1. version ohne Distinct kommt zwar keine Fehlermeldung aber dafür auch kein Ergebnis!
Wat da los

Und sag mal, das mit LEFT JOIN ist doch für mehrere Tabellen gedacht! Ich hab doch nur eine!

DISTINCT kann diese Datenbank wohl nicht (ist mysql 4)
 
Zuletzt bearbeitet:
Wenn das ohne DISTINCT nicht läuft muss das bei dir an zusätzlichen Bedingungen liegen. Versuche mal die statt bei WHERE in HAVING unterzubringen.

SUM(DISTINCT ..) gibt es tatsächlich erst ab 5.0. Nächstesmal dran denken Datenbank und Version mit anzugeben.

LEFT JOIN kann man auch mit gleichen Tabellen nutzen um wie bei dir die Datensätze der Tabelle zu vergleichen und Besonderheiten herauszufiltern.

Mir fällt im Moment dann erstmal nichts mehr dazu ein. Vielleicht später...
 
Hallo!

Schau mal hier:
SQL:
mysql> select * from heckmeck;
+------+------+
| aid  | bid  |
+------+------+
|   11 |    1 |
|   11 |    1 |
|   11 |    4 |
|   12 |    1 |
|   12 |    1 |
|   12 |    1 |
+------+------+
6 rows in set (0.00 sec)

mysql> select sum(h3.bid) from (select distinct(h1.aid), h1.bid from heckmeck h1 left join heckmeck h2 on h1.aid = h2.aid and h1.bid < h2.bid where h2.aid is null) h3;
+-------------+
| sum(h3.bid) |
+-------------+
|           5 |
+-------------+
1 row in set (0.00 sec)

Gruß Tom
 
Naja mit nen Subselect gehts dann auch einfacher:

SQL:
SELECT SUM(maxs)
FROM (SELECT max(aid) maxs FROM `table` GROUP BY bid) t;

Aber funktioniert das eine in MySQL 4.0 und das andere nicht?
 
Zuletzt bearbeitet:
Hallo!

So gehts natürlich auch, subselects sind in MySQL 4.0 kein Problem... mit älteren 3.xer Versions wars so ohne weiteres nicht möglich, was damals den Workaround über den etwas komplizierteren Left Join notwendig machte.

Gruß Tom
 

Neue Beiträge

Zurück