2014-03-03 20 views
0

我有兩條select語句,它們都有一些公共字段。在一行中插入兩個select查詢

這是我的表結構:

Id, year, valueA, ValueB 

這裏是我的兩個SELECT語句

SELECT 
    id, [year], 
    SUM(Total_Volume)/(count(distinct(month)) * 7) 
FROM 
    TableA 
GROUP BY 
    id, [year] 

SELECT 
    id, [year], 
    SUM(Total_volume)/(count(distinct(month)) * 5) 
FROM 
    TableA 
WHERE 
    weekday NOT IN ('Friday','Saturday') 
GROUP BY 
    station_id, [year] 

我有兩個語句兩個不同的條件。 Idyear對於這兩種說法都很常見。

第一個選擇語句的結果應存儲在列valueA中,第二個選擇語句的結果應存儲在ValueB中。

任何可能的方式來組合這些查詢並將它們作爲單個語句插入到表中?

+1

谷歌的 '加入' 一舉兩得計算。 – mishik

回答

3
SELECT a.id ,a.[year],valA,valB 
from(
SELECT id ,[year],SUM(Total_Volume)/ (count(distinct(month))*7) valA from TableA 
group by id,[year]) a INNER JOIN 

(select id,[year],SUM(Total_volume)/(count(distinct(month))*5) valB 
from TableA 
WHERE weekday NOT IN ('Friday','Saturday') 
group by station_id,[year]) b 
on a.id=b.id and a.[year]=b.[year] 
+0

謝謝@MikkaRin :) – bibinmatthew

0

你可以在一個單一的查詢

SELECT id, 
    [year], 
    Sum(total_volume)/(Count(DISTINCT(Month)) * 7), 
    Sum(CASE 
     WHEN weekday NOT IN ('Friday', 'Saturday') THEN 
     total_volume 
     ELSE 0 
     END)/(Count(DISTINCT(Month)) * 5) 
FROM tableA 
GROUP BY id, 
     [year];