table_a
.........................................
cmp_name pro_name purchase
a x1 5
a x2 7 7
b p18
a x18
b p212
b p16
a x13
table_b
.........................................
cmp_name pro_name sale
a x1 3 3
a x21
b p14
a x13
b p22
b p14
a x11
結果。
.........................................
cmp_name pro_name Total_pur Total_sale stock
a x1 16 7 9
a x2 7 1 6
b p1 14 8 6
b p2 12 2 10
我怎樣才能做到這一點
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
你需要對purchase和sale表進行cmp_name和pro_name分組。這是為了按cmp_name和pro_name獲得購買和銷售總額。
之后,使用purchase表LEFT JOIN到sale表。(因為你可能有購買的專案,但沒有銷售)
。
select a.cmp_name,
a.pro_name,
a.購買。
b.銷售。
stock = a.purchase - isnull(b.sale, 0)
from (
select cmp_name, pro_name, purchase = sum(purchase)
from table_a
group by cmp_name, pro_name
) a
leftjoin
(
select cmp_name, pro_name, sale = sum( sale)
from table_b
group by cmp_name, pro_name
) b on a.cmp_name = b.cmp_name
and a.pro_name = b.pro_name
order by a.cmp_name, a.pro_name
uj5u.com熱心網友回復:
嘗試下面的查詢,但你必須對這種情況有一個更好的設計
SELECT
table_a.cmp_name,
table_a.pro_name c,
(SELECT
SUM(table_a.purchase)
從
表_a
其中
table_a.pro_name = c) AS Total_pur,
(SELECT
SUM(table_b.sale)
從
表_b
其中
table_b.pro_name = c) AS Total_sale,
((SELECT
SUM(table_a.purchase)
從
表_a
其中
table_a.pro_name = c) - (SELECT
SUM(table_b.sale)
從
表_b
在
table_b.pro_name = c)) AS stock
從
表_a
LEFT JOIN
table_b ON table_a.cmp_name = table_b.cmp_name
GROUP BY table_a.cmp_name , table_a.pro_name
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/314808.html
標籤:
