2011-11-19 91 views
0

今天我的問題是這我有2列,我希望檢查這些列的總和是不是大於一個值(例如485),如果是做查詢...SQL Server求和查詢

我雖然做

SELECT * FROM table WHERE ColumnA + ColumnB < 485 

但它不工作...我已經試過

SELECT Sum(ColumnA) + Sum(ColumnB) AS Total FROM table 

,但它給了我1列包含所有行的總和,而不是我想要每一筆款項都有一排。所以我該怎麼做..? xD我希望你明白,如果不是隻是要求我試着更好地解釋它!並提前感謝那些會幫助我的人!

編輯:我發現XD的問題是列Smallint和1行或更多行的結果是超過32K,所以它不工作!謝謝!

+0

你爲什麼要標記'mysql'和'sql-server'? –

+2

你爲什麼不去完成http://stackoverflow.com/questions/7358411/php-check-paypal-payment-and-then-execute-something然後回到這裏...... –

+0

我唯一的原因可以看到你的第一條sql語句不工作,你的所有記錄都有ColumnA + ColumnB> = 485。 –

回答

0

正確的查詢實現它:

SELECT * FROM table WHERE ColumnA+ColumnB<485 

這樣的Select將返回所有的行,其中ColumnA + ColumnB小於485

如果不是的話,你的回報要的總和兩列就可以使用

SELECT SUM(ColumnA)+SUM(ColumnB) FROM Table 

這樣的查詢做所有行columnA的總和,ColumnB的總和上的所有行,然後總結了兩個和...

0

如果您在任何兩列具有空值,你必須使用case when

SELECT * FROM table_name WHERE (CASE WHEN ColumnA IS NULL 0 ELSE ColumnA END) + (CASE WHEN ColumnB IS NULL 0 ELSE ColumnB END) < 485; 

也許你有一些空值或全部數據有較大的總和值,那麼485這些列作爲大衛Parvin說。