我正在试图弄清楚每个结果只返回一行,即使每个结果有多个活动('act')。我阅读并搜索无济于事。
我想要的是什么:
Date Site Result act1 act2
1985-06-10 1008 NT6 5 10
我得到了什么:
Date Site Result act1 act2
1985-06-10 1008 NT6 5
1985-06-10 1008 NT6 10
这是我的(示例)代码,我知道它没有被破坏,但它是我尝试过的路径。我只是不知道如何获得我想要的东西。
SELECT
t."Date",
t."Site",
t."Result",
CASE
WHEN a.Type = 'act1'
THEN a.Count
END AS "act1",
CASE
WHEN a.Type = 'act2'
THEN a.Count
END AS "act2"
FROM
(
SELECT Sample.SAMPLE_ID,
Sample.Date,
Sample.Site,
Sample.Result
FROM Sample
WHERE Sample.Date is Between then and now
) t
LEFT OUTER JOIN
ACTIVITY
ON (ACTIVITY.SAMPLE_ID = t.SAMPLE_ID)
答案 0 :(得分:0)
你去吧
select t."Date", t."Site", t."Result",
sum(case when a.Type = 'act1' then a.Count else 0 end ) AS act1,
sum(case when a.Type = 'act2' then a.Count else 0 end ) AS act2
from sample left outer join activity
on (activity.sample_id = t.sample_id)
where sample.date is between then and now
并且不要在列名上使用大括号。