我尝试过这种方案有很多种方法,并且无法获得正确的语法,以便最大限度地提高结果。 (对不起,但这是在一个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