2017-05-03 9 views
0

私は問題を解決するために取り組んできました。数量が1000リストSNAMEを超えている場合、私は、私が現在やっていることの表からではなく、また、表2から数量を合計し、それらを一覧表示するには1.SQL IF..ELSEシナリオ

が必要

S# Sname StatusNum City 
s1 Smith 20 London     
s2 Jones 10 Paris      
s3 Blake 30 Paris      
s4 Clark 20 London     
s5 Adams 30 Athens  


S# P# J# QTY 
s1 p1 j1 200 
s1 p1 j4 700 
s2 p3 j1 400 
s2 p3 j2 200 
s2 p3 j3 200 
s2 p3 j4 500 
s2 p3 j5 600 
s2 p3 j6 400 
s2 p3 j7 800 
s2 p5 j2 100 
s3 p3 j1 200 
s3 p4 j2 500 
s4 p6 j3 300 
s4 p6 j7 300 
s5 p1 j4 100 
s5 p2 j2 200 
s5 p2 j4 100 
s5 p3 j4 200 
s5 p4 j4 800 
s5 p5 j4 400 
s5 p5 j5 500 
s5 p5 j7 100 
s5 p6 j2 200 
s5 p6 j4 500 

されています。私は2つのテーブルを持っています:

Select SUM(qty) as total_sales, S# 
From SPJ 
Group by S#; 

与える:

total_sales S# 
900   s1 
3200  s2 
700   s3 
600   s4 
3100  s5 

これは私の合計を与えるだろうが、私は名前を取得する方法で立ち往生していますsとS2、S5であれば、どんな助けでも大歓迎です。ありがとう!

答えて

3

あなたの集計クエリで構成されて派生テーブルに最初のテーブルを結合し、売上高は1000年よりも大きいときに名前を表示するcase表現を使用することができます。

select 
    t.S# 
    , case 
     when s.total_sales >= 1000 
     then t.SName 
     else '' 
     end as SName 
    , s.total_sales 
from (
    Select SUM(qty) as total_sales, S# 
    From SPJ 
    Group by S# 
    ) s 
    inner join table1 t 
    on s.S# = t.S# 
+0

うわー、完璧に動作します!どうもありがとうございます! –

+0

@R_Lothbrok助けて嬉しいです! – SqlZim