Ich muss eine Anfrage in SQL machen. Ich habe Thesen TabellenCASE Beitreten in SQL Server
Ich mag diese Anfrage tun, aber die Anforderung nie mir Ergebnisse senden:
Select CDR.*,
p1.*
From dbo.T_CDR_APPEL CDR
Inner Join dbo.POS As p1 On Case
When CDR.CDR_LOC_CODE Like 'CH%' And CDR.CDR_TYPE Like 'I%' And
CDR.CDR_LOC_CODE = p1.Loc_Code Then 1
When CDR.CDR_LOC_CODE Like 'CCN%' And CDR.CDR_TYPE Like 'I' And
CDR.CDR_LAST_REDIR_NO = p1.Post_type Then 1 Else 0 End = 1
Ich habe auch versucht
Select CDR.*,
p1.*
From dbo.T_CDR_APPEL CDR
Inner Join dbo.POS As p1 On CDR.CDR_LOC_CODE = p1.Loc_Code
Where CDR.CDR_LOC_CODE Like 'CH%' And CDR.CDR_TYPE Like 'I%'
Union All
Select CDR.*,
p1.*
From dbo.T_CDR_APPEL CDR
Inner Join dbo.POS As p1 On CDR.CDR_LAST_REDIR_NO = p1.Post_type
Where CDR.CDR_LOC_CODE Like 'CCN%' And CDR.CDR_TYPE Like 'I'
Aber gleiches Ergebnis, Die Anfrage scheint zu funktionieren, ist aber nicht erfolgreich.
Danke für Ihre Hilfe!
UPDATE: Es funktioniert jetzt mit einer Union !! Thnak für deine Hilfe!
Sie sollten 'CASE' nicht verwenden, wenn Sie dasselbe mit dem einfachen' AND'/'OR' machen können. Um herauszufinden, wo Ihre Bedingungen fehlschlagen, gehen Sie Schritt für Schritt vor. Beispiel: Wählen Sie aus dbo.t_cdr_appel, wobei cdr_loc_code wie 'CH%' und cdr_type wie 'I%' aussieht und sehen Sie, ob Sie irgendwelche Datensätze bekommen. Wenn ja, welche CDR_LOC_CODEs erhalten Sie? Existieren sie in dbo.POS? –
CDR_LOC_CODE existiert in dbo.POS ja! – Alexandre
Also meine Abfrage gibt Datensätze zurück? Und es gibt CDR_LOC_CODE zurück, das mit Pos.Loc_Code übereinstimmt? Dann ist es seltsam, dass Ihre Suchanfrage diese Treffer nicht erhält. Wäre dann irgendwo ein Tippfehler. –