2016-05-27 4 views
-1

列が1(1)の場合にのみ各列の合計を合計する選択クエリを作成します。列挙型が1の場合にのみMySQL sun列

は、これは私がこれまで持っているものです。

SELECT 
UniqueID, 
SUM(
SeqID0101 + SeqID0102 + SeqID0103 + SeqID0104 + SeqID0105 + SeqID0106 + SeqID0107 + SeqID0108 + SeqID0109 + SeqID0110 + 
SeqID0201 + SeqID0202 + SeqID0203 + 
SeqID0301 + SeqID0302+ SeqID0303 + SeqID0304 + 
SeqID0401 + SeqID0402 + SeqID0403 + SeqID0404 + 
SeqID0501 + SeqID0502 + 
SeqID0601 + SeqID0602 + 
SeqID0701 + SeqID0702 + 
SeqID0801 + SeqID0802 + 
SeqID0901 + SeqID0902 + SeqID0903 + 
SeqID1001 + SeqID1002 + SeqID1003 + SeqID1004) 
WHERE 
(SeqID0101 = 1 OR SeqID0102 = 1 OR SeqID0103 = 1 OR SeqID0104 = 1 OR SeqID0105 = 1 OR SeqID0106 = 1 OR SeqID0107 = 1 OR SeqID0108 = 1 OR SeqID0109 = 1 OR SeqID0110 = 1 OR SeqID0201 = 1 OR SeqID0202 = 1 OR SeqID0203 = 1 OR SeqID0301 = 1 
OR SeqID0302 = 1 OR SeqID0303 = 1 OR SeqID0304 = 1 OR SeqID0401 = 1 OR SeqID0402 = 1 OR SeqID0403 = 1 OR SeqID0404 = 1 OR SeqID0501 = 1 OR SeqID0502 = 1 OR SeqID0601 = 1 OR SeqID0602 = 1 OR SeqID0701 = 1 OR SeqID0702 = 1 OR SeqID0801 = 1 
OR SeqID0802 = 1 OR SeqID0901 = 1 OR SeqID0902 = 1 OR SeqID1001 = 1 OR SeqID1002 = 1 OR SeqID1003 = 1) 

私が午前問題があり、もし3が合計に含まなっていることをコラムContantを3、。

私はこれを間違って実行していますかもしそうなら、私はどのようにクエリを構築すべきですか?

お時間をいただき、ありがとうございます。

乾杯。

+0

のみ1Sが含まれます、あなたはSUMを実行なぜ?結果は(私がうまくカウントすれば)36にしかなりません。あなたの質問は 'SeqID0101 = 1 AND SeqID0102 = 1 AND ... 'でなければなりません。 – StephaneM

答えて

1

あなたの文章は少し不明であるが、あなたは、この使用することができるはずです:あなたが列を知っている場合

SELECT 
    UniqueID, 
    SUM(IF(SeqID0101 = 1, 1, 0) 
     + IF(SeqID0102 = 1, 1, 0) 
     ... 
     + IF(SeqID1003 = 1, 1, 0)) 
FROM 
    my_table 
GROUP BY 
    UniqueID; 
+0

HI hummingBird、= 1,1,0は何ですか?私は学ぶ必要があります。 – DCJones

+0

完璧、多くのありがとう – DCJones