Ergebniszeilen einen Namen geben

lufraku

Neuer Benutzer
Beiträge
3
Hallo,
ich bringe mir grade selbst bei SQL Abfragen zu schreiben und habe nun das Problem, dass ich ein Ergebnis einer Abfrage habe, das so aussieht

WERT
1 65
2 189

Statt 1 und 2 sollen die Ergebniszeilen nun einen Namen bekommen. Der eine Wert ergibt sich aus dem ersten Teil der Abfrage, der zweite Wert aus dem anderen Teil. Die Selects sind mit union verknüpft. Das Ganze sieht so aus:

select count(*) Wert
from tab1
where blabla in
(select blabla2 from tab2
where bla!='CLOSED'
and blabla='xx' and blabla='XXX')
and blabla is not null
union
select count(*) Wert
FROM tab1
WHERE blabla IN
(SELECT blabla
FROM tab2
WHERE blabla!='CLOSED'
and blabla!='INITIAL'
AND blabla ='PACKING'
)
AND blabla!='CLOSED'

Wo geb ich den Kindern 1 und 2 denn Namen wie z.B. "in Arbeit" und "offen"?
Vielen Dank für eure Hilfe
 
Werbung:
Also erstmal sieht dein Code zum K****n aus, sry muss mal gesagt werden. Kann auch an den vielen blablas liegen aber Subselects und UNIONs da blick ich nicht durch.

Abgesehen davon suchst du glaube ich eine CASE Schleife.
Code:
SELECT ( CASE WHEN spalte = 1 THEN 'in Arbeit' WHEN spalte = 2 THEN 'offen' ELSE 'wusa' END ) AS tolle_spalte FROM tolle_tabelle
 
Klar sieht das zum K***n aus. Ich bin ja froh, dass meine Abfragen funktionieren :)
Ich laß mal das "Unwichtige" weg und hoffe man steigt dann besser durch.

select count(*) Wert
from tab1
where in
(select ...)
union
select count(*) Wert
FROM tab1
WHERE IN
(SELECT ...)
AND Spalte!='CLOSED'

Das Ergebnis besteht aus zwei Zeilen mit je einer Zahl. Die eine Zahl liefert der obere select, die andere Zahl der Untere. Es ist aber nicht zu erkennen welche Zahl zu welchem Select gehört.
 
In diesem Fall ginge:
Code:
select 'text1' AS Spalte, count(*) Wert
from tab1
where in
(select ...)
union
select 'text2' AS Spalte, count(*) Wert
FROM tab1
WHERE IN
(SELECT ...)
AND Spalte!='CLOSED'
 
Werbung:
Zurück
Oben