由于我的问题有些特殊,经过很长时间的搜索,我还没有找到并回答,所以就这样吧:我有两个表:In_Stock 和 Out_Stock。我使用以下选择:
有存货:
select
INs.CatID as CategoryID,
INs.SubCatID as SubcategoryID, Sum(INs.Quantity) as QuantityIN
from IN_Stock INs
group by INs.CatID, INs.SubCatID
╔════════════╦═══════════════╦════════════╗
║ CategoryID ║ SubcategoryID ║ QuantityIN ║
╠════════════╬═══════════════╬════════════╣
║ 2 ║ 9 ║ 0 ║
║ 1 ║ 16 ║ 8 ║
║ 1 ║ 27 ║ 5 ║
║ 1 ║ 30 ║ 160 ║
║ 1 ║ 31 ║ 6 ║
║ 1 ║ 39 ║ 35 ║
║ 1 ║ 40 ║ 7 ║
║ 2 ║ 44 ║ 13 ║
║ 2 ║ 54 ║ 6 ║
║ 2 ║ 70 ║ 5 ║
║ 3 ║ 87 ║ 3,5 ║
╚════════════╩═══════════════╩════════════╝
缺货:
select
OUTs.CatID as CategoryID,
OUTs.SubCatID as SubcategoryID,
Sum(OUTs.Quantity) as QuantityOUT
from OUT_Stock OUTs
group by OUTs.CatID, OUTs.SubCatID
╔════════════╦═══════════════╦═════════════╗
║ CategoryID ║ SubcategoryID ║ QuantityOUT ║
╠════════════╬═══════════════╬═════════════╣
║ 1 ║ 30 ║ 30 ║
║ 1 ║ 39 ║ 15 ║
╚════════════╩═══════════════╩═════════════╝
我得到的是下面这张表(这显然是不对的)。
select
INs.CatID as CategoryID,
INs.SubCatID as SubcategoryID,
Sum(INs.Quantity) as QuantityIN,
SUM(OUTs.Quantity) as QuantityOUT,
SUM(INs.Quantity)- SUM(OUTs.Quantity) as RemainingQuantity
from IN_Stock INs
left join OUT_Stock OUTs on INs.CatID=OUTs.CatID and INs.SubCatid=OUTs.SubCatid
group by INs.catid, INs.subcatid
╔════════════╦═══════════════╦═════════════╦════════════╦═══════════════════╗
║ CategoryID ║ SubcategoryID ║ QuantityIN ║ QuantityOUT║ RemainingQuantity ║
╠════════════╬═══════════════╬═════════════╬════════════╬═══════════════════╣
║ 2 ║ 9 ║ 0 ║ ║ ║
║ 1 ║ 16 ║ 8 ║ ║ ║
║ 1 ║ 27 ║ 5 ║ ║ ║
║ 1 ║ 30 ║ 320 ║ 150 ║ 170 ║
║ 1 ║ 31 ║ 6 ║ ║ ║
║ 1 ║ 39 ║ 35 ║ 30 ║ 5 ║
║ 1 ║ 40 ║ 7 ║ ║ ║
║ 2 ║ 44 ║ 13 ║ ║ ║
║ 2 ║ 54 ║ 6 ║ ║ ║
║ 2 ║ 70 ║ 5 ║ ║ ║
║ 3 ║ 87 ║ 3,5 ║ ║ ║
╚════════════╩═══════════════╩═════════════╩════════════╩═══════════════════╝
我想要的是在 SQL 中进行选择,返回类似于下表的内容......我想知道我是否以及如何在 RemaningStock 列中看到:130,其中 SubcategoryID=30 和20,其中 SubCategoryID=39。
╔════════════╦═══════════════╦════════════╦════════════╦═══════════════════╗
║ CategoryID ║ SubcategoryID ║ QuantityIN ║ QuantityIN ║ RemainingQuantity ║
╠════════════╬═══════════════╬════════════╬════════════╬═══════════════════╣
║ 2 ║ 9 ║ 0 ║ ║ ║
║ 1 ║ 16 ║ 8 ║ ║ ║
║ 1 ║ 27 ║ 5 ║ ║ ║
║ 1 ║ 30 ║ 160 ║ 30 ║ 130 ║
║ 1 ║ 31 ║ 6 ║ ║ ║
║ 1 ║ 39 ║ 35 ║ 15 ║ 20 ║
║ 1 ║ 40 ║ 7 ║ ║ ║
║ 2 ║ 44 ║ 13 ║ ║ ║
║ 2 ║ 54 ║ 6 ║ ║ ║
║ 2 ║ 70 ║ 5 ║ ║ ║
║ 3 ║ 87 ║ 3,5 ║ ║ ║
╚════════════╩═══════════════╩════════════╩════════════╩═══════════════════╝
两个表都有一个或多个特定类别或子类别的记录
。非常感谢任何帮助。非常感谢!
SQL 或 Access VBA 代码对我都有好处。
PS:由于这是我的第一篇文章,请“温柔”。