表一
id 已售数量
1 3
2 4
4 5
表二
id 库存数量
1 2
2 3
3 4
4 5
5 6
现在做一个简单的统计
从表二中选取只包含表一的记录~
然后计算 筛选出来的记录中的库存数量+表一的已售数量的总和
结果:
id 总数量 已售数量
1 5(=2+3) 3
2 7(=3+4) 4
4 10(=5+5) 5
id 已售数量
1 3
2 4
4 5
表二
id 库存数量
1 2
2 3
3 4
4 5
5 6
现在做一个简单的统计
从表二中选取只包含表一的记录~
然后计算 筛选出来的记录中的库存数量+表一的已售数量的总和
结果:
id 总数量 已售数量
1 5(=2+3) 3
2 7(=3+4) 4
4 10(=5+5) 5
A.id,
SUM(已售数量 + 库存数量) As 总数量,
SUM(已售数量) As 已售数量
From
表一 A
Inner Join
表二 B
On A.id = B.id
Group By
A.id
A.id,
已售数量 + 库存数量 As 总数量,
已售数量
From
表一 A
Inner Join
(Select id, SUM(已售数量) As 已售数量 From 表二 Group By id) B
On A.id = B.id
A.id,
SUM(已售数量) + MAX(库存数量) As 总数量,
SUM(已售数量) As 已售数量
From
表一 A
Inner Join
表二 B
On A.id = B.id
Group By
A.id
A.id,
SUM(已售数量) + 库存数量 As 总数量,
SUM(已售数量) As 已售数量
From
表一 A
Inner Join
表二 B
On A.id = B.id
Group By
A.id, B.库存数量
特别是inner join
可以说一下你的思路吗
A.id,
已售数量 + 库存数量 As 总数量,
已售数量 As 已售数量
From
表一 A
Inner Join
表二 B
On A.id = B.id
对了~还有一个关键就是你刚刚说的id 唯一性
如果是有重复怎么办?
--------
按道理,庫存表應該不會有id重復,而銷售表id有可能重復。就這麼寫Select
A.id,
SUM(已售数量) + 库存数量 As 总数量,
SUM(已售数量) As 已售数量
From
表一 A
Inner Join
表二 B
On A.id = B.id
Group By
A.id, B.库存数量
如果倆表id都不會重復Select
A.id,
已售数量 + 库存数量 As 总数量,
已售数量 As 已售数量
From
表一 A
Inner Join
表二 B
On A.id = B.id
其实我知道inner join out join 但就不知道只能用在没重复的字段上
-----------
我可沒說inner join不能用在重复的字段上, :)。你看看例子,再自己寫下代碼,理解下。
from 表1 t left join 表2 t1 on t.id = t1.id
group by t.id
我的意思是如果有重复的话~那这sql 就不符合实际情况了