大力,邹健,看看能否实现?

wynbfqny 2003-08-25 04:25:28
订单表
订单号 产品名 日期 数量
1 a 03-8-24 1000
1 b 03-8-24 6000
2 b 03-8-25 2000

发货表
订单号 产品名 日期 数量
1 a 03-8-21 200
1 a 03-8-22 500
1 a 03-8-26 300
2 b 03-8-21 600
2 b 03-8-24 1400

要求查询结果
订单号 产品名 日期 数量 到期发货数
1 a 03-8-24 1000 700
1 b 03-8-24 6000 0
2 b 03-8-25 2000 2000

关系:订单表.订单号=发货表.订单号 and 订单表.产品名=发货表.产品名

查询结果.到期发货数为发货表内对应订单记录日期<=订单表.日期的发货数之和
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-08-26
  • 打赏
  • 举报
回复
select *,(select sum(数量) from 发货表 where 订单号=a.订单号 and 产品名=a.产品名 and 日期<=a.日期) 到期发货数 from 订单表 a
wynbfqny 2003-08-26
  • 打赏
  • 举报
回复
问题解决,结贴
愉快的登山者 2003-08-25
  • 打赏
  • 举报
回复
select A.订单号,A.产品名,A.日期,A.数量,
(select isnull(sum(数量),0) from 发货表 where 订单号=A.订单号 and 产品名=A.产品名 and 日期 <= A.日期) 到期发货数
from 订单表 A

愉快的登山者


◢◣◢◣◢◣
wynbfqny 2003-08-25
  • 打赏
  • 举报
回复
to CrazyFor(蚂蚁) 你看发货表 里订单号=1 and 产品名=b 的记录是否没有???
愉快的登山者 2003-08-25
  • 打赏
  • 举报
回复
select A.订单号,A.产品名,A.日期,A.数量,
(select sum() from 发货表 where 订单号=A.订单号 and 产品名=A.产品名 and 日期 <= A.日期) 到期发货数
from 订单表 A

愉快的登山者


◢◣◢◣◢◣
happydreamer 2003-08-25
  • 打赏
  • 举报
回复
从给出的数据中看
订单号 产品名
1 b
在03-8-24 之前一直没有发货,到期发货数应该为0啊
CrazyFor 2003-08-25
  • 打赏
  • 举报
回复
不对啊,按照你的逻辑,应该是这样的结果:

订单号 产品名 日期 数量 到期发货数
1 a 03-8-24 1000 700
1 b 03-8-24 6000 2000 ---为什么你这里要0??
2 b 03-8-25 2000 2000
happydreamer 2003-08-25
  • 打赏
  • 举报
回复


select a.*,isnull ((select sum(数量 ) from 发货表 where 订单号=a.订单号 and 产品名=a.产品名 and 日期<=a.日期),0) as 到期发货数
from 订单表 a

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧