我有一張表如圖id projectName pId cDate amount period contractNum ownerName archives1 江夏區(qū)大橋 1 2017 1900000 1 001 A 12 江夏區(qū)大橋 1 2017 1500000 2 001 A 13 江夏區(qū)大橋 1 2018 1900000 1 001 A 14 其他區(qū)大橋 2 2018 1900000 1 002 B 25 北方區(qū)大橋 3 2016 1902451 1 003 C 36 北方區(qū)大橋 3 2016 1854695 2 003 C 37 江夏區(qū)大橋 1 2016 1500000 1 001 A 18 江夏區(qū)大橋 1 2016 1000000 1 001 A 1我想查出年份大于2016的所有記錄,每條記錄要加上這個項目在2016年前的所有的付款金額的總和,這個sql語句怎么寫?我寫了一個但是只出了一條數(shù)據(jù)并且是錯誤的。SELECT DATE_FORMAT(t.cDate,'%Y') AS YEAR,t.*,SUM(a.amount) FROM wlkgltz1 tLEFT JOIN (SELECT * FROM wlkgltz1 t WHERE DATE_FORMAT(t.cDate,'%Y')<='2016') aON t.pId = a.pIdWHERE DATE_FORMAT(t.cDate,'%Y') > '2016'
1 回答

元芳怎么了
TA貢獻1798條經(jīng)驗 獲得超7個贊
試一下這個
select w2., w4.sum2016
(select w1. from wlkgltz1 w1 where DATE_FORMAT(w1.cDate,'%Y')>'2016) w2,
(select sum(amount) sum2016 from wlkgltz1 w3 where w3.projectName = w2.projectName and DATE_FORMAT(t.cDate,'%Y')<='2016' group by cDate) w4;
添加回答
舉報
0/150
提交
取消