2016-08-26 41 views
4

我需要創建如下表架構的總體報告:在SQL Server中的情侶對錶的總報告

Table Schema

我需要創建爲總報告如下表:

+----------+--------+------------------+-----------------------------+------------------------------+ 
| Location | Trucks | TotalOfCampaings | CampaingsWithCompleteStatus | CampaingsWithInProcessStatus | 
+----------+--------+------------------+-----------------------------+------------------------------+ 
|   |  |     |        |        | 
+----------+--------+------------------+-----------------------------+------------------------------+ 
|   |  |     |        |        | 
+----------+--------+------------------+-----------------------------+------------------------------+ 
  • 位置:卡車與至少一個運動的位置。
  • 卡車:至少有一個競選的位置卡車的數量。
  • TotalOfCampaings:位置和卡車的總活動數量。
  • CampaignsWithCompleteStatus:完成的活動總數,狀態位於活動表中。
  • CampaignsWithInProcessStatus:處於進行狀態的活動總數,狀態位於活動表中。

營銷活動=訂購修理一輛或多輛卡車。

我嘗試了一個內部連接,但我無法得到我期待的一般報告。

我將不勝感激幫助我解決這個問題,任何問題發表評論!

+0

你能發表你試過的查詢,結果和你想要的不同嗎?這會幫助我們很多! –

+0

@HurricaneDevelopment你好,情況如下,我已經爲同樣的問題創建了一個報告,但是方案發生了變化,現在我需要修改新方案,唯一的變化是**活動的狀態字段發生變化控制**表到**活動**表。 – TimeToCode

+0

@HurricaneDevelopment等一下,讓我找到我以前的代碼 – TimeToCode

回答

4
SELECT Truck.location as Location, 
    COUNT(Truck.vin) as Trucks, 
    COUNT(Campaing.campaing_id) as TotalOfCampaings, 
    sum(case when Campaing.campaing_estatus = 'Complete' then 1 else 0 end) as CampaingsWithCompleteStatus, 
    sum(case when Campaing.campaing_estatus = 'InProcess' then 1 else 0 end) as CampaingsWithInProcessStatus 
    FROM CampaingControl 
     INNER JOIN Truck ON CampaingControl.vin = Truck.vin 
     INNER JOIN Campaing ON CampaingControl.campaing_id = Campaing.campaing_id 
    GROUP BY Truck.location; 
+0

當我試圖測試時,這第二次內部連接失敗 – TimeToCode

+0

@TimeToCode錯誤是什麼? –

+0

這:關鍵字'INNER'附近語法不正確。但是在第二次內部聯接。 – TimeToCode