请问如何处理下面这个查询?(100分)

  • 主题发起人 主题发起人 catfox
  • 开始时间 开始时间
C

catfox

Unregistered / Unconfirmed
GUEST, unregistred user!
一个仓库零件进出表:
时间 姓名 零件 价格 数量(正数-进; 负数-退)
5-15 黄 A 5 5
5-15 黄 B 10 10
5-15 黄 B 10 -5
5-15 叶 A 5 5
5-16 叶 A 10 5
5-16 黄 A 10 -1

查询出结果后,数量要相抵消, 如

查5-15则:
时间 姓名 零件 价格 数量
5-15 黄 A 5 5
5-15 黄 B 10 5
5-15 叶 A 5 5
查5-15~5-16则:
时间 姓名 零件 价格 数量
5-16 黄 A 10 4
5-15 黄 B 10 5
5-16 叶 A 10 10 (时间、价格取对应姓名、零件的最新时间)

怎办?



 
select 时间,姓名,零件,价格,sum(数量) from 表 group by 时间,姓名,零件,价格
 
>>(时间、价格取对应姓名、零件的最新时间)

若用上面的语句,不同价格之间的零件不能相抵消

忘了一点,时间的格式是精确到时分秒的,不同记录之间的时间不同
 
select day(时间),姓名,零件,max(价格),sum(数量)
from 表
group by day(时间),姓名,零件
where 时间=:rq
parambyname('rq').asdatetime:=
 
select distinct 时间,姓名,零件,sum(数量)
from 表
group by 时间,姓名,零件
where 时间条件
如有变量参数后再加入参数
 
多人接受答案了。
 
后退
顶部