2012-04-27 15 views
1

私はSQL Serverを使用しています。私は2つのテーブルを持っており、私はグリッドビューを満たすために使用できる1つのクエリに結合したいと思います。SQL Serverクエリを組み合わせる

表1 dbo.Work
UID(PK、INT)
Tech_Ticket(INT)
RMA_Ticket(INT)
リージョン(nchar10)
完成(nchar10)
FA(nchar10)
エージェント(nvarchar50)
トラッキング(nvarchar50)
Date_Added(date)
Date_Updaテッド(日)

表2 dbo.Orders
UID(PK、int型)
注文(int型)
エージェント(nvarchar50)
チケット(int型)
ノート(nvarchar50)

今は2つの個別のクエリと2つの別々のテーブルとしてセットアップしています。

Query1を:

SELECT [Agent], 
    SUM(CASE WHEN [Date_Added] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'New ', 
    SUM(CASE WHEN [Date_Updated] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'Worked', 
    SUM(CASE WHEN [Completed] = 'yes' AND [Date_Updated] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'Completed', 
    SUM(CASE WHEN [Failure_Analysis] = 'yes' AND [Date_Updated] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'FA' 
    FROM Work 
    GROUP BY [Agent] 

QUERY2:

SELECT [Agent] 
    SUM(CASE WHEN [Date] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'Orders' 
    FROM Orders 
    GROUP BY [Agent] 

一つにこれらの2つのクエリを結合する方法はありますか?

+0

Workがメインテーブルであると仮定すると、それはこのようにする必要があります。 – Lex

+0

2つのテーブル間の共通フィールドは何ですか? (エージェント?) – Brett

+0

テーブルにT-SQLコードを追加して、コードをクエリウィンドウにコピーできるようにしてください。マークダウンコードの書式設定を使用して、構文のハイライトも取得します。 –

答えて

1

JOINとすることができます。彼らは一緒にクエリで複数のテーブルを結合することができ、私はあなたが参加を見てお勧め

SELECT A.*, B.Orders 
FROM ( SELECT [Agent], 
       SUM(CASE WHEN [Date_Added] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'New', 
       SUM(CASE WHEN [Date_Updated] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'Worked', 
       SUM(CASE WHEN [Completed] = 'yes' AND [Date_Updated] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'Completed', 
       SUM(CASE WHEN [Failure_Analysis] = 'yes' AND [Date_Updated] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'FA' 
     FROM Work 
     GROUP BY [Agent]) A 
LEFT JOIN (SELECT [Agent] 
        SUM(CASE WHEN [Date] BETWEEN @startDate AND @endDate THEN 1 ELSE 0 END) AS 'Orders' 
      FROM Orders 
      GROUP BY [Agent]) B 
ON A.[Agent] = B.[Agent] 
+0

EDIT:Lamakのソリューションが動作します。ありがとうございました。 – user1361180

+0

@ user1361180 - それはうまくいった。あなたの質問に正しく答えた場合は、それを承認済みとマークすることを検討してください(回答の横のマークをチェックして、それを空白から緑色に切り替える) – Lamak

関連する問題