Einzelnen Beitrag anzeigen

Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#10

AW: SQL Abfrage funktioniert im Data Architect, in Query von Delphi nicht

  Alt 23. Sep 2011, 14:38
Muss nochmal etwas nachfragen, komme einfach nicht auf die Lösung.

Code:
SELECT
    Buchungsdatei.Datum,
   Personal.ID, Personal.Name,
   Personal.Vorname,
        F.MinToHour(B_Ergebnisse.Pause) as Pause,
   F.MinToHour(B_Ergebnisse.Mehrarbeit) as Mehrarbeit,
   F.MinToHour(B_Ergebnisse.Tagesnetto) as Tagesnetto,
        min(Buchungen.Me1), max(Buchungen.Me2),
   sum(CASE WHEN Buchungen.AuftragNr IS NULL THEN 0 ELSE BSumme END) BSumme,
   Auftraggeber.Name // --> Name des Auftraggebers
FROM
    (((((((Personal Personal
LEFT OUTER JOIN Abteilungen Abteilungen ON
        Personal.ID_Abteilungen = Abteilungen.ID)
LEFT OUTER JOIN Buchungsdatei Buchungsdatei ON
        Personal.ID = Buchungsdatei.ID_Personal)
LEFT OUTER JOIN Buchungen Buchungen ON Buchungsdatei.ID_Personal = Buchungen.ID_Personal
AND Buchungsdatei.Datum = Buchungen.Datum)
Left outer join auftrag a on Buchungen.Id_Auftrag = a.id) // --> meine zwei joins, mit denen ich mir den Namen des Auftraggebers ermittel
Left Outer join Auftraggeber Auftraggeber on a.ID_Auftraggeber = Auftraggeber.Id) // -->2ter join
LEFT OUTER JOIN FEHLTAGEDEFINITION FEHLTAGEDEFINITION ON Buchungsdatei.Fehltag = FEHLTAGEDEFINITION.Kuerzel)
Left OUTER JOIN B_Ergebnisse B_Ergebnisse ON Buchungsdatei.ID = B_Ergebnisse.ID_Buchungsdatei)
Where Buchungsdatei.Datum >= '01.08.2011' and Buchungsdatei.Datum <= '30.08.2011' and Personal.ID = 88
and Auftraggeber.Name = 'Test GmbH'
group by Buchungsdatei.Datum, Personal.ID, Personal.Name, Personal.Vorname, Pause, Mehrarbeit,
         Tagesnetto,Auftraggeber.Name // -->gruppieren nach Auftraggeber
Mit diesem SQL zeigt er mir aber wieder nur die Tage im Monat an, für die ein Auftraggeber hinterlegt worden ist. Der SQL soll mir aber alle Tage anzeigen. An Tagen wo kein Auftraggeber hinterlegt ist, soll das Feld eben freigelassen werden.

Bevor ich diese 2 joins eingefügt habe, zeigte er mir noch für alle Tage werte an, nicht nur für Tage an denen auch gearbeitet worden ist.
  Mit Zitat antworten Zitat