0

Ich versuche, Ergebnisse aus einer Datenbank (SQL Server 2005), die 4 Tabellen nimmt zu ziehen: Subscriber S, Mitglied M, L ClaimLines, ClaimHistoryLines HSQL-Verlauf Tabelle aktive Tabelle SSRS beitreten berichten

Abfrage ist wie folgt:

select S.SBSB_ID, M.MEME_NAME, 
(CASE L.CLCL_ID WHEN '' THEN H.CLCL_ID ELSE L.CLCL_ID END) AS CLAIM_ID 
FROM CMC_CDDL_CL_LINE L, CMC_MEME_MEMBER M LEFT OUTER JOIN CMC_CLDH_DEN_HIST H 
ON H.MEME_CK = M.MEME_CK, CMC_SBSB_SUBSC S 
WHERE 
S.SBSB_ID = '120943270' AND 
L.MEME_CK = M.MEME_CK AND 
M.SBSB_CK = S.SBSB_CK 

Diese Abfrage zieht erfolgreich in den Ergebniszeilen aus der ClaimLines L Tabelle, aber keine Ergebnisse aus der History-Tabelle angezeigt. Ich bin nicht sicher, wie man das macht, irgendwelche SQL-Experten da draußen, die helfen könnten, wären großartig. -Vielen Dank!

Antwort

0

Das war ein sehr dummer Fehler von meiner Seite. Ich habe es versäumt, an eine UNION zu denken, die mein Problem gelöst hat und mir erlaubt hat, von beiden Orten in eine einzige Ergebnismenge zu ziehen, ohne riesige Doppelreihen zu erzeugen. Froh, dass jemand den richtigen Weg zum Schreiben von SQL mit ANSII-Standards aufgezeigt hat.

select S.SBSB_ID, M.MEME_NAME, 
L.CLCL_ID AS CLAIM_ID 
FROM 
CMC_SBSB_SUBSC S INNER JOIN CMC_MEME_MEMBER M ON S.SBSB_CK = M.SBSB_CK 
INNER JOIN CMC_CDDL_CL_LINE L ON L.MEME_CK = M.MEME_CK 
WHERE 
S.SBSB_ID = '120943270' 
UNION 
select S.SBSB_ID, M.MEME_NAME, 
H.CLCL_ID AS CLAIM_ID 
FROM 
CMC_SBSB_SUBSC S INNER JOIN CMC_MEME_MEMBER M ON S.SBSB_CK = M.SBSB_CK 
INNER JOIN CMC_CLDH_DEN_HIST H ON H.MEME_CK = M.MEME_CK 
WHERE 
S.SBSB_ID = '120943270' 
1

CMC_CDDL_CL_LINE L, M CMC_MEME_MEMBER LEFT OUTER JOIN CMC_CLDH_DEN_HIST H

nicht obsolet mischen Syntax implizierten verbinden mit linken verbinden. Sie spielen nicht gut zusammen. Verwenden Sie die richtige ANSII-Standard-Join-Syntax. Infact aufhören, die veraltete Syntax insgesamt zu verwenden.

+0

wählen S.SBSB_ID, M.MEME_NAME, (CASE L.CLCL_ID WENN SONST L.CLCL_ID END THEN H.CLCL_ID '') AS CLAIM_ID FROM CMC_SBSB_SUBSC S INNER JOIN CMC_MEME_MEMBER M = ON S.SBSB_CK M.SBSB_CK INNER JOIN CMC_CDDL_CL_LINE L ON L.MEME_CK = M.MEME_CK LINK OUTER JOIN CMC_CLDH_DEN_HIST H ON H.MEME_CK = M.MEME_CK WHERE S.SBSB_ID = '120943270' -Ich habe die Abfrage wie oben beschrieben neu geschrieben, ist das nun im ANSII-Standardformular? Immer noch bestehen die gleichen Probleme mit der Ergebnismenge –

+0

Sind Sie sicher, dass Ihr Datenergebnissatz Datensätze enthält, in denen L.CLCL_ID = '' – HLGEM

Verwandte Themen