2017-07-01 31 views
4

我已經編寫了一個個人僞代碼來幫助其他人瞭解我想實現的目標。我是SQL初學者,但我知道所有的基礎知識,只是沒有足夠的可能性經驗。SQL - 如何檢索正確的數字

我試過使用SELECT CASE,但它沒有達到我所需要的。

這裏是我的樣本數據

CREATE TABLE Records 
    ([ColA] INTEGER, [ColB] INTEGER, [ColTotal] INTEGER) 
; 

INSERT INTO Records 
    ([ColA], [ColB]) 
VALUES 
    ('3', '4'), 
    ('4', '2’), 
    ('1', '2'), 
    ('3', '5'), 
    ('3', '1'), 
    ('2', '2') 
; 

這裏是我的僞代碼(我發現後接受的答案,我在僞邏輯是不正確的了。這已經被固定)

SELECT COL A, COL B, COL TOTAL 
IF COL A >= COLB THEN 
ADD COLB value to COL TOTAL 
ELSE 
USE Value from COLA and add to total 
END IF 

這裏是我的SQL

SELECT SUM(ColTotal) 
FROM t 
WHERE ColA >= ColB 
+2

採樣數據比僞代碼更好。使用您正在使用的數據庫進行標記。 –

回答

3

這是你想要的嗎?

select sum(case when a < b then a else b end) as total 
from t; 

許多數據庫支持least()功能,這使得這個簡單:

select sum(least(a, b)) as total 
from t; 
+1

非常感謝,幾乎完美的答案。選擇總和(當a> = b然後b另一個結束時)總計爲 from t;我只需要在SQL中交換邏輯即可得到我想要的答案。我會在接受我的問題時將其視爲已接受的答案。再次感謝您分享您在這個問題上的專業知識和經驗。我花了6個小時來處理我的工作。 w3school和虛擬SQL服務器,我正在閱讀大量的SQL語句在互聯網上,並不適用於我。 – user8242530