2016-07-31 4 views
0

サブクエリについては私は賢明ではありません。私は正しい結果を与えるために、以下のSQLスクリプトを手に入れようとしています。私は何か間違っているか、結果を誤解しています。ここに私のSQLがあります。サブクエリの合計を行うSQLの検索

select Horizontal Horizontal, sum(headcount) Headcount, 
    sum(fte) FTE, BE, Street, City, State, Zip, Country, 
    SQ_FT, O_L, Comp_Code, Entity 
FROM 
    (SELECT t.Horizontal Horizontal, 
     COUNT(d.SIGNEDAU) Headcount, 
     COUNT(d.SIGNEDAU) * t.[AU Distribution to Services] FTE, 
     a.[BE #] BE, d.ADDRESSLINE1 Street, d.CITY, 
     d.STATE, d.ZIP, d.COUNTRY, 
     a.FT2 SQ_FT, a.[O/L] O_L, a.[Comp Code], a.ENTITY 
    FROM dbo.HR_Data d 
     join dbo.Service_Taxonomy t 
      ON d.SIGNEDAU = t.[AU Code] 
     left join dbo.All_Active a 
      ON d.CITY = a.City 
       AND d.STATE = a.ST 
       AND d.ADDRESSLINE1 = a.Street 
    GROUP BY d.SIGNEDAU, t.[AU Distribution to Services], 
     a.[BE #], a.FT2, a.[O/L], a.[Comp Code], 
     a.ENTITY, t.[Critical Y/N], t.Horizontal, t.[Level 1], 
     d.ADDRESSLINE1, d.CITY, d.STATE, d.COUNTRY, d.ZIP, 
     d.HR_STATUS, d.EMPLOYEESTATUS 
    HAVING d.HR_STATUS = N'A' and d.EMPLOYEESTATUS = N'A') sub 
Group by Horizontal, FTE, BE, Street, 
    City, State, Zip, Country, SQ_FT, 
    O_L, Comp_Code, Entity 

enter image description here

私は一つにこれらの2つの行をマージし、そして10の人員数の合計と5.のFTEの合計を得るために、グループ化して、人員数とFTEの合計を期待私が完全に理解していない何らかの理由は、上記のSQLは集計ではなく、グループ化していないようです。誰かが私がこれをまっすぐにするのを助けてくれますか?私は単純なものを見逃しているに違いないが、何がわからない。前もって感謝します!

+0

からFTEを除外するあなたは、クエリの出力のスクリーンショットを貼り付けているが、それは国を超えた列が表示されません。 SQ_FT、O_L、Comp_Code、Entityも含む、より優れたスクリーンショットを提供できますか?おそらくそれらの列の1つで行が異なります。 –

+0

サブクエリについて言及しておきたいことの1つは(相関関係がない限り、あなたのものではありません)、各サブクエリを独自の別のテーブルと考えることです。言い換えれば、一度サブクエリを書いたら、その実装の詳細すべてを忘れて、それをそれ自身の明確な関係とみなしてください。次に、サブクエリに対して集計を実行することは、他のサブクエリと同様にエクササイズになります。サブクエリが適切な「開始マテリアル」を提供しない場合は、サブクエリが開始するまでそれを書き換えます。それから、もう一度、その実装を忘れて、あなたの外部集約を書いてください。 – Xedni

+1

サンプルデータと予想される結果を投稿することができれば、私たちが手助けするのがより簡単になるでしょう。 – Squirrel

答えて

1

GROUP BYSELECT