PDA

Vollständige Version anzeigen : Bedingte Abfrage


Tobias vF
15.06.2012, 15:58
Hallo liebe Access Gemeinschaft.
Ich habe gerade eine Abfrage in SQL-Server verfasst, die ich nun nach ACCESS übersetzen will...

SQL Server Abfrage:

SELECT patient.id, sum(case when liste.name like '%diabe%' THEN 1 ELSE 0 END)
FROM dbo.patient as patient

INNER JOIN dbo.patient_has_diagnoseliste as diagnose on patient.id = diagnose.patient_id
INNER JOIN dbo.diagnoseliste as liste on diagnose.diagnoseliste_id = liste.id

Group By patient.id
HAVING sum(case when liste.name like '%diabe%' THEN 1 ELSE 0 END) > 0

Diese Abfrage soll mir also all diejenigen Patienten holen, in deren Dignosen das Wort "diabe" auftaucht. Das klappt so auch wunderbar.
In Access gibt es jedoch nicht die "case" Anweisung und daher habe ich es mit "iif" probiert:

SELECT patient.id, sum(iif(liste.name like "%Diabe%",1,0))
FROM (dbo_patient AS patient

INNER JOIN dbo_patient_has_diagnoseliste AS diagnose ON patient.id = diagnose.patient_id)
INNER JOIN dbo_diagnoseliste AS liste ON diagnose.diagnoseliste_id = liste.id

GROUP BY patient.id
HAVING sum(iif(liste.name like "%diabe%",1,0)) >0

Leider bekomm ich mit dieser Abfrage keine Ergebnisse. Das darf nicht sein, schließlich wird auf die gleichen Tabellen zugegriffen.
Was mache ich falsch?

Thomas Möller
15.06.2012, 16:01
Hallo Tobias,

Diese Abfrage soll mir also all diejenigen Patienten holen, in deren Dignosen das Wort "diabe" auftaucht. Das klappt so auch wunderbar.
In Access gibt es jedoch nicht die "case" Anweisung und daher habe ich es mit "iif" probiert:

bei Access musst Du statt dem % das * verwenden:

SELECT patient.id, sum(iif(liste.name like "*Diabe*",1,0))

HTH

Tobias vF
15.06.2012, 16:02
HA! Super! Klappt.

Danke dir

Lanz Rudolf
16.06.2012, 21:28
Hallo
fals Du noch Plazhalter wie _ oder ^jrgendwo Verwendest

_ ist in Acces ?
^ ist in Acces !