當我使用以下公式運行單個查詢以使第一列回饋月/年時,第二個回報每月簽署的人數,第三個回饋給運行總計簽名的,它的偉大工程:MySQL:來自不同子查詢的多個運行總計
SET @runtot1:=0;
SELECT
1rt.MONTH,
1rt.1signed,
(@runtot1 := @runtot1 + 1rt.1signed) AS 1rt
FROM
(SELECT
DATE_FORMAT(STR_TO_DATE(s.datecontacted,'%m/%d/%Y'),'%Y-%m') AS MONTH,
IFNULL(COUNT(DISTINCT CASE WHEN s.surveyid = 791796 THEN s.id ELSE NULL END),0) AS 1signed
FROM table1 s
JOIN table2 m ON s.id = m.id AND m.current = "Yes"
WHERE STR_TO_DATE(s.datecontacted,'%m/%d/%Y') > '2015-03-01'
GROUP BY MONTH
ORDER BY MONTH) AS 1rt
有了上面的查詢,我得到的結果如下表,這將是我想要的東西,如果我只需要算一兩件事:
MONTH 1signed 1rt
2015-03 0 0
2015-04 1 1
2015-05 0 1
2015-08 1 2
2015-10 1 3
2015-11 1 4
2016-01 0 4
2016-02 0 4
但我不知道如何做到這一點與多個子查詢si我需要在多個列同時發生這種情況。例如,我試圖這樣的事情(which doesn't work):
SET @runtot1:=0;
SET @runtot2:=0;
select
DATE_FORMAT(STR_TO_DATE(s1.datecontacted,'%m/%d/%Y'),'%Y-%m') AS MONTH,
t1.1signed,
(@runtot1 := @runtot1 + t1.1signed) AS 1rt,
t2.2signed,
(@runtot2 := @runtot2 + t2.2signed) AS 2rt
from
(select
DATE_FORMAT(STR_TO_DATE(s.datecontacted,'%m/%d/%Y'),'%Y-%m') AS MONTH,
IFNULL(COUNT(DISTINCT CASE WHEN s.surveyid = 791796 THEN s.id ELSE NULL END),0) AS 1signed
from table1 s
left join table2 m ON m.id = s.id
where m.current = "Yes"
GROUP BY MONTH
ORDER BY MONTH) as T1,
(select
DATE_FORMAT(STR_TO_DATE(s.datecontacted,'%m/%d/%Y'),'%Y-%m') AS MONTH,
IFNULL(COUNT(DISTINCT CASE WHEN s.surveyid = 846346 THEN s.id ELSE NULL END),0) AS 2signed
from table1 s
left join table2 m ON m.id = s.id
where m.current = "Yes"
GROUP BY MONTH
ORDER BY MONTH) as T2,
table1 s1
LEFT JOIN table2 m1 ON m1.id = s1.id AND m1.current = "Yes"
WHERE STR_TO_DATE(s1.datecontacted,'%m/%d/%Y') > '2015-03-01'
GROUP BY DATE_FORMAT(STR_TO_DATE(s1.datecontacted,'%m/%d/%Y'),'%Y-%m')
ORDER BY DATE_FORMAT(STR_TO_DATE(s1.datecontacted,'%m/%d/%Y'),'%Y-%m')
這嚴重炸燬了我的結果 - 我也試圖LEFT JOIN的讓這兩個下一對方,但也不能工作。
這裏有一個SQL Fiddle帶有幾個值與查詢頂部的工作,但不是查詢需要看起來像下面的想法。
如果代碼的多個子查詢版本的工作,下面將是理想的歸宿:
MONTH 1signed 1rt 2signed 2rt
2015-03 0 0 1 1
2015-04 1 1 0 1
2015-05 0 1 1 2
2015-08 1 2 0 2
2015-10 1 3 0 2
2015-11 1 4 0 2
2016-01 0 4 0 2
2016-02 0 4 1 3
只是試圖找出一種方式來獲得每月連軋總計數自2015年3月兩使用相同查詢的不同調查問題。任何幫助將不勝感激!
@Strawberry對不起 - 我添加了一些他們的樣子。我希望這有助於! – Ryan
讓我們[在聊天中繼續討論](http://chat.stackoverflow.com/rooms/102735/discussion-between-ryan-and-strawberry)。 – Ryan
因此,回顧一下,鑑於更新sqlfiddle中提供的數據集以及更新的sqlfiddle中提供的數據集,期望的結果集應該是什麼樣子? – Strawberry