Sam: SQL-Query mit Fallunterscheidungen

Beitrag lesen

Servus,

als ersten Schritt habe ich nun mal den Fall, dass das Endedatum VOR dem nächsten Halbjahresbeginn liegt (es wird also die Zeitspanne Vertragsbeginn-Vertragsende berechnet und summiert).

Wie bekomme ich da nun die CASE-Verzweigung rein?

  
  
SELECT  
 SUM(DATEDIFF(day, isnull(tabelle.beginn_korrektur,tabelle.beginn),isnull(tabelle.ende_korrektur,tabelle.ende)))  
 AS VertrTage, tabelle.pn  
  
FROM   tabelle  
  
WHERE  (tabelle.ende <=  
 (  
 SELECT  
  next_hj = CASE  
   WHEN SUBSTRING(CONVERT(VARCHAR(8), GETDATE(), 112),5, 4) < '0201'  
    THEN CONVERT(DATETIME, CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '0201', 112)  
   WHEN SUBSTRING(CONVERT(VARCHAR(8), GETDATE(), 112),5, 4) < '0801'  
    THEN CONVERT(DATETIME, CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '0801', 112)  
   ELSE  
    CONVERT(DATETIME, CAST(YEAR(GETDATE()) + 1 AS VARCHAR(4)) + '0201', 112)  
  END  
 )  
)  
  
GROUP BY tabelle.pn