2017-07-01 7 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

サンプル・データの擬似コードよりも優れている:

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

多くのデータベースでは、これが簡単になるleast()機能は、サポートされています。使用しているデータベースにタグを付けます。 –

答えて

3

これは何ですか?

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

ありがとう、ほぼ完璧な答え。選択sum(a> = bの場合、b else elseの場合)合計はtからの です。私はちょうど私の希望の答えを得るためにSQLのロジックを交換する必要がありました。私はこれが私の質問に答えたとして受け入れられた答えとしてこれを承認するでしょう。あなたの専門知識と経験を共有してくれてありがとう。私が持っているもので働くには6時間かかりました。私が当てはまらないインターネット上でたくさんのSQL文を読んでいるw3schoolとdummy SQLサーバー。 – user8242530

関連する問題