2016-08-08 10 views
0

データ結果をクエリに保存するには、2つの変数を実装する必要があります。 次のクエリの値を変数に保存するにはどうすればよいですか? SQL Server

CampaingsWithInProcessStatus

は、私が列を追加する必要があります|所在地| |トラック| TotalOfCampaings | CampaingsWithCompleteStatus

SELECT * FROM 
(SELECT location AS Location, COUNT(*) AS Trucks FROM Truck GROUP BY location) loc 
OUTER APPLY 
(
    SELECT 
     COUNT(*) AS TotalOfCampaings, 
     SUM(CASE WHEN cc.campaing_status = 'Complete' THEN 1 ELSE 0 END) AS CampaingsWithCompleteStatus, 
     SUM(CASE WHEN cc.campaing_status = 'InProcess' THEN 1 ELSE 0 END) AS CampaingsWithInProcessStatus 
    FROM CampaingControl cc INNER JOIN Truck t ON cc.vin = t.vin 
    WHERE t.location = loc.location 
) stat 

このクエリは、次の表は示しています

は、私は彼が、クエリ、次の持っています最後に、新しい列には完全なステータスでキャンパーの割合を取得する必要があります。私はこのようなことを試みました:

Percent =(CampaingsWithCompleteStatus/TotalOfCamapings)* 100

しかし、私はそれを行うためのクエリの値を保存する方法はわかりません。このような

答えて

0

何か:

SELECT 
    loc.Location, 
    loc.Trunks, 
    stat.TotalOfCampaings, 
    stat.CampaingsWithCompleteStatus, 
    stat.CampaingsWithInProcessStatus, 
    (1.0 * stat.CampaingsWithCompleteStatus /stat.TotalOfCampaings) * 100 as [Percent] 
FROM 
(SELECT location AS Location, COUNT(*) AS Trucks FROM Truck GROUP BY location) loc 
OUTER APPLY 
(
    SELECT 
     COUNT(*) AS TotalOfCampaings, 
     SUM(CASE WHEN cc.campaing_status = 'Complete' THEN 1 ELSE 0 END) AS CampaingsWithCompleteStatus, 
     SUM(CASE WHEN cc.campaing_status = 'InProcess' THEN 1 ELSE 0 END) AS CampaingsWithInProcessStatus 
    FROM CampaingControl cc INNER JOIN Truck t ON cc.vin = t.vin 
    WHERE t.location = loc.location 
) stat 
+0

こんにちは、私はあなたの助けに感謝し、私はテーブルに値を挿入するときのパーセント列は常に私が機能を使用するので、私は、両方の値が整数であるsupose 0 – TimeToCode

+0

示しSUM、または多分浮動小数点に変換する必要がありますか?私は知らない – TimeToCode

+1

編集されました:彼らはintであるのでintもintです。それを解決するには1.0を乗算してトリックを使います –

関連する問題