Ich habe ein Problem mit einer SQL-Abfrage. Ich brauche eine Liste aller eindeutigen [Cod Angajat] Felder, für die die Summe aller Einträge in der Spalte [Timp deklarat] kleiner als 8 ist, mit der Where-Klausel. Balg ist was ich bis jetzt bekommen habe.Wählen Sie unterschiedliche Werte aus, wenn die Bedingung sum <Wert
In der Tabelle habe ich 3 Zeilen. Sie gibt mir die gleichen Reihen, statt 1 Zeile, für Wich alle Bedingungen gelten - was bedeutet, das mit [Cod Angajat] = 2.
| Cod Angajat | Nume | Timp declarat |
---------------------
| 1 | Ene | 3 |
| 1 | Ene | 5 |
| 2 | Gigi | 4 |
select COUNT(DISTINCT [Cod Angajat]), [Cod Angajat], [Nume], [Timp declarat]
FROM [SC Vermorel SRL$ProductieVE]
WHERE (sum([Timp declarat] < 8 AND cast(CONVERT(varchar(8), Data, 112) As DateTime) = @data2) and ([Schimb] = '" & ProceseazaSCH(Now()) & "'
GROUP BY [Nume], [Cod Angajat], [Timp declarat]
HAVING sum([Timp declarat]) < 8
Tabellendaten, aktuelles Ergebnis und erwartetes Ergebnis anzeigen. – jarlh
Sie gruppieren nach [Timp deklarat], dann funktioniert die Summenaggregation für Zeilen, in denen alle Feldwerte gleich sind. Sie müssen nur nach [Cod Angajat] und [Nume] gruppieren. – zequihg50