Subselects und CO erneut benutzen?

wachteldonk

Erfahrenes Mitglied
Hallo,

wenn ich

HTML:
SELECT 
	manachname		AS Nachname,
    mavorname		AS Vorname, 
	(
    SELECT 
    	SUM(tage) AS tagessumme  
     FROM 
     	03_00_resturlaub AS t2 
     WHERE 
     	t1.MAID = t2.MAID 
     AND 
     	datum = CONCAT((YEAR(now())-1),'-12-31')   
    ) AS tagessumme 
FROM 
	03_00_mitarbeiter AS t1  
WHERE 
	t1.standort = 'Bremen' 
AND 
	PERSTATUSID = 3 
ORDER BY 
	t1.manachname,
    t1.mavorname

möchte ich eine if Abfrage darum bauen udn je nach Ergebnis das Ergebnis nehmen doer 0 zurückgeben. Wie mach ich das ohne jedesmal der Ergebnisabfrage, den ermittelten vorherigen Wert zu nehjmen?
 
Hallo,

so aus dem Bauch raus würde ich sagen. Welches DBMS benutz du, ich schließe mal aus der CONCAT operation auf mySQL?
ungetestet geht es evtl. so:
PHP:
 SELECT 
	  manachname		AS Nachname,
    mavorname		AS Vorname, 
    case when 	SUM(tage) > 0 then 'hat resturlaub' else 'kein resturlaub' end resturlaubs_anspruch
FROM 
	03_00_mitarbeiter AS t1 
join
 	03_00_resturlaub AS t2 
on
	t1.MAID = t2.MAID 
WHERE 
	t1.standort = 'Bremen' 
AND 
	PERSTATUSID = 3 
and 
	datum =  CONCAT((YEAR(now())-1),'-12-31')	
ORDER BY 
	t1.manachname,
  t1.mavorname

In Deiner Version muesste man noch mal ein select außenherum ansetzen:

PHP:
select Nachname, Vorname,
case when tagessumme > 0 than 'hat resturlaub' else 'keinen resturlaub' end rest_urlaubs_anspruch
from
(

SELECT 
	manachname		AS Nachname,
    mavorname		AS Vorname, 
	(
    SELECT 
    	SUM(tage) AS tagessumme  
     FROM 
     	03_00_resturlaub AS t2 
     WHERE 
     	t1.MAID = t2.MAID 
     AND 
     	datum = CONCAT((YEAR(now())-1),'-12-31')   
    ) AS tagessumme 
FROM 
	03_00_mitarbeiter AS t1  
WHERE 
	t1.standort = 'Bremen' 
AND 
	PERSTATUSID = 3 
)	
ORDER BY 
Nachname, Vorname

Ist es das was du brauchst ?

LG
 
Zuletzt bearbeitet:
Hallo

nicht so ganz. Ich möchet einen ermittelten Wert wie z.B.

x AS meinwert


auch späet rbenutzen in z.B. der WHERE Abfrage

WHERE meinwert > 100

x kann dabei eine Feld, BErechnungsergebnis doer ein Subselectergebnis oder so sein

Derzeiot habe ich einen riesigen Select über 1000 Zeilen:) Das ist einfach zu unübersichtlich:) ud nwarum sollte man den gleichen Subselect x mal gleich einbauen , wenn man doch auf das Ergebnis zurückgreifen könnte:)
 
Zurück