日期:2014-05-18  浏览次数:20502 次

自认比较恶心的,高手进!
现在要对表   M   中的数据进行全部和单独统计;其中有一统计类型   对应表   S,不同类型(ID)时,对应的表不同:
如   1对应表A   ,2对应表B,   3无对应表,A和B表结构相同,且A、B表的ID与S   表的
S-ID   相对应,S表的   ID   与   M   表的   M-ID   相对应,现在要全部进行统计时,类型有对应的表则统计出   A   或B   表的   ID   ,无则显示空该如何写一条SQL?


------解决方案--------------------
楼主把表结构列出来。
------解决方案--------------------
--试试这个
SELECT M.form_type,S.form_name,M.flow_id,M.flow_name,M.custom_id,
SUM(CASE M.form_type
WHEN 1 THEN SELECT SUM(VALUE)FROM A WHERE A.ID=M.custom_id
WHEN 2 THEN SELECT SUM(VALUE)FROM B WHERE B.ID=M.custom_id
WHEN 3 THEN 0 END)AS Total
FROM M INNER JOIN S ON M.form_type=S.form_type
GROUP BY M.form_type,S.form_name,M.flow_id,M.flow_name,M.custom_id
ORDER BY M.form_type,S.form_name,M.flow_id,M.flow_name,M.custom_id