gezählten Wert auch anzeigen

Babsi

SQL-Guru
Beiträge
122
Hallo,

bin mit folgender Anforderung überfordert, ich bekomme es einfach nicht hin:-(
Und zwar, hole ich mit folgendem Statement die Anzahl der Diagnosen zu der Anzahl der Patienten aus einer Tabelle:

SELECT Count(b.ICD) as Diagnosen,b.P_ID as Patientenanzahl
FROM dbo.COC_Diagnose b
WHERE EXISTS (SELECT COUNT(a.P_ID)
FROM dbo.COC_Diagnose a
GROUP by a.ICD)
And b.Sicherheit Like 'G'
GROUP By b.P_ID
;

Wie bekomme ich denn nun auch den Namen der Diagnose dazu.
Da kann man ja mit T Sql noch andere Sachen machen als mit dem aus Access, aber da bin ich leider noch nicht so gut drin.
Kann mir jemand helfen?
 
Werbung:
wir können wir erraten, was Du da hast. Ich vermute mal, Du hast sowas wie:

Code:
test=*# select * from diagnosen ;
 patient | diagnose  
---------+-----------
       1 | husten
       1 | schmerzen
       2 | fieber
       3 | husten
(4 rows)

test=*# select patient, count(1) from diagnosen group by patient;
 patient | count
---------+-------
       2 |     1
       1 |     2
       3 |     1
(3 rows)

suchst aber:

Code:
test=*# select patient, count(1), string_agg(diagnose, ', ') from diagnosen group by patient;
 patient | count |    string_agg     
---------+-------+-------------------
       2 |     1 | fieber
       1 |     2 | husten, schmerzen
       3 |     1 | husten
(3 rows)
 
Werbung:
..WHERE EXISTS (SELECT COUNT(a.P_ID)
FROM dbo.COC_Diagnose a
GROUP by a.ICD)
Am Rande: Ist interessant, aber ziemlich sicher nicht sinnvoll. Die Ausgabe des Count allein benötigt keine Group Clause. Groupt man dennoch auf ein anderes Feld, so erhält man schlimmsten Falls sehr viele Counts. (Die die Abfrage natürlich nicht beschleunigen). Füttert man damit am Ende eine Where Exists Prüfung, ist es vergebene Liebesmüh. Es reicht auch ein schlichtes TOP 1 (in MS SQL glaub ich ) statt des Count. Nach dem ersten Treffer, ist die Abfrage schon fertig.

Ansonsten geht es eher nicht um Kombinationen, sondern schlicht um Anzahl von Erkrankungen?
Mumps: 3
Masern: 1
Husten: 30
? (Was bedeutet, dass ein Patient hier mit einem Fall oder Arztbesuch durchaus an verschiedenen Stellen gezählt wird.)
 
Zurück
Oben