有5列的表格:值比較2008
COL1,COL2,COL3,COL4,MONTHNAME
喜歡的東西:
col1 | col2 | col3 | col4 | monthName
----------------------------------------
4 | 5 | 55 | 8 | January
4 | 4 | 33 | 6 | February
col1和COL2之和必須與上個月的col4相同。所以,我可以像
select * from table1 where col1+col2=col4 where monthName='February'
比較,但它會比較所有行何在我想這是一個月特定像
select *
from table1
where col1+col2 = (select col4 from table1 where monthName='January')
where monthName='February'
我如何以正確的方式做到這一點?
那麼,這是關於月度報告。
也許我的主要問題是從過去一個月(例如一月)獲取col4。
我想更清楚地解釋:
- 獲取COL1當前月份(這是在MONTHNAME列)和COL2做的總和。
- 從上個月獲取col4單元格值。在這種情況下,是monthName 2月的欄。
- 的COL1 COL2 +(本月)進行比較,以COL4(上個月在MONTHNAME)。
- 在我的第一個例子中,行號2是真的,因爲4 + 4 = 8這與1月的col4值(8)相匹配。如果當前月份的col1和col2總和與上個月的col4數據匹配,那麼用戶是好的。
我能得到col1和col2上很容易:
選擇總和(COL1 + COL2)作爲currentTotal從表1,其中MONTHNAME =「二月」
但我如何從上個月商店COL4值它在什麼地方然後比較currentTotal?每個月都會插入15行,並與上個月進行比較。
不知道這次我是否更好解釋一下!
你應該重新考慮你的設計。而不是'monthName varchar',你應該考慮'first_of_month date'。 – gvee
爲什麼不只是計算SUM(col1 + col2-col4)GROUP BY月?這種方式與零病不同是一個無效值 – jean
你可以添加更多的數據行到table1和預期的結果?我不明白你的解釋 –