2012-04-27 156 views
1

我使用SQL Server和我有兩個表,我想結合成一個查詢,我可以用它來填充GridView控件。結合SQL Server的查詢

表1 dbo.Work
UID(PK,INT)
Tech_Ticket(INT)
RMA_Ticket(INT)
區(nchar10)
完成(nchar10)
FA(nchar10)
代理(nvarchar50)
跟蹤(nvarchar50)
DATE_ADDED(日期)
Date_Upda泰德(日期)

表2 dbo.Orders
UID(PK,INT)
訂單(INT)
代理(nvarchar50)
票(INT)
筆記(nvarchar50)

現在我把它們設置爲兩個單獨的查詢和兩個獨立的表。

查詢1:

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] 

有沒有辦法將這兩個查詢合併成一個?

+0

我建議你看看加盟,他們可以在一個查詢合併多個表在一起。 – Lex 2012-04-27 13:25:55

+0

這兩個表格之間的共同點是什麼? (代理?) – Brett 2012-04-27 13:28:35

+0

請將表的T-SQL代碼添加到您的問題中,以便我們可以將代碼複製到查詢窗口中。使用降價代碼格式也可以獲得語法高亮顯示。 – 2012-04-27 13:28:37

回答

1

你可以JOIN他們。假設Work是主表,它應該是這樣的:

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

編輯:拉馬克的解決方案的作品。謝謝。 – user1361180 2012-04-27 13:44:23

+0

@ user1361180 - 很高興工作。如果它正確回答了您的問題,請考慮將其標記爲已接受(檢查答案旁邊的標記以將其從空心切換爲綠色) – Lamak 2012-04-27 13:58:57