Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Sub-Select im Haupt-Select: lässt sich dann "group by" anwenden?

  Alt 8. Jul 2020, 14:53
Dankeschön!

, Ok für das genannte Beispiel passt das nun wenn ich "BN.Total_Std" weg lasse in der Group-Klausel.
Ich hatte auf Uwes Hinweis deswegen nicht reagiert, weil ich aus Nichtwissen davon ausgegangen war, dass in der Group by-Klausel immer alle Spalten enthalten sein müssen die im Select stehen. Da muss ich mich wohl noch etwas schlauer machen.

Nun, das gezeigte SQL war "natürlich" nur ein Ausschnitt.

Jetzt habe ich folgendes (immer noch reduziertes) SQL Statement:

Code:
SELECT
   SELECT
        MAX(BN.TOTAL_STD),
   CA.NAME + ', ' + CA.VORNAME + ' (' + LTRIM(PERSNR) + ')',
   BA.AUFTRAGTEXT, -- <-- diese Zeile bewirkt, dass mehrere Zeilen pro Mitarbeiter und pro Tag angezeigt werden !   
   BN.DATUM,
   SQ.KOMMENTAR,
   B_zwei.ABTBEZEICHNUNG,
   DATEPART(wk, CONVERT(VARCHAR(8), BN.DATUM, 112)) "KW",
   1 "Zähler"
FROM ZEITRUECKMELDUNGEN BN
LEFT JOIN KTORECHWERTE SW ON BN.PERSREC_ID = SW.PERSID
      AND CONVERT(VARCHAR(8), SW.DATUM, 112) = BN.DATUM
LEFT JOIN KTORECHANZWERTE SQ ON SW.DEFINITIONID = SQ.IDENTIFIKATION
LEFT JOIN PERSONALSTAMM CA ON BN.PERSREC_ID = CA.IDENTIFIKATION
LEFT JOIN AUFTRAGSTAMM BA ON BN.AUFTRAGSNUMMER = BA.AUFTRAGSNR COLLATE Latin1_General_BIN
LEFT JOIN ABTEILUNG B_zwei ON CA.ABTEILUNG = B_zwei.ABTEILUNGNR
WHERE
   BN.DATUM >= '2019-01-01'
   AND BN.DATUM <= '2020-07-01'
   AND BN.TOTAL_STD <> '   0.00'
   AND SW.DEFINITIONID IN (413, 414, 415)
   AND SW.WERT > 0
   AND BN.STATUS_BEGINN IN ('N', 'E')
GROUP BY CA.NAME + ', ' + CA.VORNAME + ' (' + LTRIM(PERSNR) + ')',
       BA.AUFTRAGTEXT,
       BN.DATUM,
       SQ.KOMMENTAR,
       B_zwei.ABTBEZEICHNUNG
ORDER BY CA.NAME + ', ' + CA.VORNAME + ' (' + LTRIM(PERSNR) + ')',
BN.DATUM
Hiermit werden nun wieder mehrere Zeilen pro Tag und pro Person angezeigt. Wenn ich BA.AUFTRAGTEXT entferne funktioniert alles und es wird nur eine Zeile pro Tag und Pro Person ausgewiesen.
Kann mir hier nochmal jemand auf die Sprünge helfen?
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat