预备数据:
--生成测试数据
drop table TBA,TBB
create table TBA(名称 varchar(10),数量 int,时间 varchar(10))
insert into TBA values('a',2,20071011)
insert into TBA values('a',1,20071012)
insert into TBA values('a',3,20071013)
insert into TBA values('b',2,20071011)
insert into TBA values('b',1,20071012)
insert into TBA values('b',3,20071013)
create table TBB(名称 varchar(10),数量 int)
insert into TBB values('a',3)
insert into TBB values('a',1)
insert into TBB values('b',6)
希望看见的查询结果:
/**
名称 数量 时间 名称 已分配量
a 2 20071011 a 2
a 1 20071012 a 1
a 3 20071013 a 1
b 2 20071011 b 2
b 1 20071012 b 1
b 3 20071013 b 3
*/
答案:
------------测试语句
SELECT 名称, SUM(数量) from TBA WHERE TBA.时间<20071013 AND TBA.名称='a' GROUP BY TBA.名称
-----------解答一
SELECT A.*,C.名称,C.总数,已分配量 =
CASE WHEN (C.总数-ISNULL(( SELECT SUM(D.数量)
FROM TBA AS D
WHERE D.时间<A.时间
AND D.名称=A.名称
GROUP BY D.名称),0))>=A.数量
THEN
A.数量
ELSE
(C.总数-ISNULL(( SELECT SUM(D.数量)
FROM TBA AS D
WHERE D.时间<A.时间
AND D.名称=A.名称
GROUP BY D.名称),0))
END
FROM TBA AS A
left JOIN
( SELECT B.名称 AS 名称,SUM(B.数量) AS 总数
FROM TBB B
GROUP BY B.名称) AS C
ON ( A.名称=C.名称)
-----------解答二
SELECT TBA.*,TBB.数量-ISNULL((
SELECT SUM(数量)
FROM TBA A
WHERE A.名称 = TBA.名称
AND A.时间< TBA.时间) ,0),
ISNULL(( SELECT SUM(数量)
FROM TBA A
WHERE A.名称 = TBA.名称
AND A.时间< TBA.时间) ,0)
as FCQ,TBB.数量
FROM TBA
LEFT OUTER JOIN
( SELECT 名称,SUM(数量) AS 数量
FROM TBB
GROUP BY 名称 ) AS TBB
ON TBA.名称=TBB.名称
分享到:
相关推荐
综合技能训练四:制定货物组托示意图绘制
当灾情出现时,政府会将救灾物资分发到受灾者手中,但由于救灾物资有限,所以怎样把物资公平合理的分配到受灾群众手中便显得尤为重要了。由于灾区中每名受灾者的受灾情况不同,导致每名受灾者对各种物资的需求程度也...
托盘堆垛捆扎货物操作训练实训报告.pdf托盘堆垛捆扎货物操作训练实训报告.pdf托盘堆垛捆扎货物操作训练实训报告.pdf托盘堆垛捆扎货物操作训练实训报告.pdf托盘堆垛捆扎货物操作训练实训报告.pdf
航空货物运输练习二归类.pdf
精品股权分配方案中外货物买卖合同2 .pdf
超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板货物起重机超低板...
保税加工货物练习概要.docx
自动售货机装有货物分配器,每个分配器中包含0 个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果有货,且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将找零返回到...
出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口货物报关单出口...
java实现对文件中货物信息的读取处理
铁路货物运价规则.doc
建立货位分配模型,并引入了货物的COI值对货物进行重新分类.将粒子群算法同人工蜂群算法相结合,通过优化COI值从而对货位进行优化分配.最后,进行实验分析并证明了混合粒子群算法的正确性,可有效地应用分类存放策对...
国际货物运输和保险练习.doc
进出口货物报关单填制真题练习
如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客...
GB12268-2012危险货物品名表
超市货物管理系统