我嘗試過這種方案有很多種方法,並且無法獲得正確的語法,以便最大限度地提高結果。 (對不起,但這是在一個SQL 2000服務器上)在select語句中嵌入case中的join(SQL)
我會升級,除非應用程序可能打破對它的運行。 因此,我試圖根據(如果案例已關閉)拉出最大數量的結果。但是我不希望「唯一」的innerjoin的情況下,試圖
SELECT DISTINCT CASE.CASENUM AS Case#,
CASE.Lastname AS [Client Name],
event.actiondate AS [Last Action in Event],
event.description AS [Last Event],
CASE.statcode AS [Case Status],
transmdf.amount,
transmdf.postdate [Last ActionDate],
transmdf.description AS [Last Fin. Action]
FROM Transmdf
INNER JOIN
(
SELECT CASENUM,
MAX(postdate) AS latest
FROM Transmdf
GROUP BY CASENUM) YYY
ON transmdf.CASENUM = YYY.CASENUM
AND transmdf.postdate = YYY.latest
INNER JOIN event
ON transmdf.casenum = event.casenum
INNER JOIN
(
SELECT CASENUM,
MAX(actiondate) AS latest
FROM EVENT
GROUP BY CASENUM) XXX
ON EVENT.CASENUM = XXX.CASENUM
AND EVENT.ACTIONDATE = XXX.latest
INNER JOIN
CASE
ON transmdf.casenum = CASE.casenum
WHERE CASE.statcode = 'c'
ORDER BY CASE.lastname
時候,但是我碰到什麼削減可能5000箱子了我返回的結果。
理想情況下,我想要做的是拉的所有結果案件是「關閉」過了某個日期。
有一個caviat的......這些情況下返回
顯示在事件表中的最後(最近)動作(日期&說明)(用於查詢的每個客戶端)
以及他們的最後(最近)的金融交易(金額/日期/說明)(用於查詢的每個客戶端)
幫助?
正如我所說,..使用內部連接,導致我失去了一些事例(約4000),因爲它只查找「Event」或「Transmdf」條目。如果我查看那些在我需要的日期範圍內關閉的案例表,則會返回9000個案例。只要我進入內部連接,它將列表縮小到約5000個案例。 – spidervarient 2014-09-23 22:23:53