Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Zwei SQLs mit UNION zusammenfassen geht nicht

  Alt 4. Apr 2010, 01:20
Vielleicht so...
SQL-Code:
SELECT MONTH(z.Datum) AS Monat,
       SUM(CASE WHEN (a.Art = 1)
                     OR (a.Art = 2)
                     OR ( a.AuftragNr = 'KLA'
                          AND YEAR(a.ErfassDatum) = :ParamJahr)
             THEN z.ZeitBer
             ELSE 0
           END) AS SummeEZKA,
       SUM(CASE WHEN a.Art = 3
             THEN z.ZeitBer
             ELSE 0
           END) AS SummeHW,
       SUM(CASE WHEN a.AuftragNr = 'NVZ'
                     AND YEAR(a.ErfassDatum) = :ParamJahr
             THEN z.ZeitBer
             ELSE 0
           END) AS SummeNVZ
FROM Zeit z
INNER JOIN Auftrag a
  ON z.AuftragsID = a.ID
WHERE ISNULL(a.Praemie, 0) >= 0
  AND YEAR(z.Datum) = :ParamJahr
  AND 1 = :ParamPraemie
GROUP BY MONTH(z.Datum)

UNION

SELECT MONTH(z.Datum) AS Monat,
       SUM(CASE WHEN (a.Art = 1)
                     OR (a.Art = 2)
                     OR ( a.AuftragNr = 'KLA'
                          AND YEAR(a.ErfassDatum) = :ParamJahr)
             THEN z.ZeitBer
             ELSE 0
           END) AS SummeEZKA,
       SUM(CASE WHEN a.Art = 3
             THEN z.ZeitBer
             ELSE 0
           END) AS SummeHW,
       SUM(CASE WHEN a.AuftragNr = 'NVZ'
                     AND YEAR(a.ErfassDatum) = :ParamJahr
             THEN z.ZeitBer
             ELSE 0
           END) AS SummeNVZ
FROM Zeit z
INNER JOIN Auftrag a
  ON z.AuftragsID = a.ID
WHERE ISNULL(a.Praemie, 0) = 0
  AND YEAR(z.Datum) = :ParamJahr
  AND 0 = :ParamPraemie
GROUP BY MONTH(z.Datum)

ORDER BY Monat
  Mit Zitat antworten Zitat