请教一个将一张表中三个字段数据相同的纪录的统计

szqiming 2003-10-22 05:01:41
表的结构:
(订单id,材料id,材料批号,材料箱号,材料序号,使用时间)
现在要将使用的材料按照材料id分类统计出使用的数量,(在一段时间内查询)
有一些纪录的材料id,材料批号,材料箱号,材料序号是相同的,因为该订单使用的
是同一块材料
比如
1,材料1,123,35,2,2003-10-10
2,材料1,123,35,2,2003-10-11

像这样的情况只能算用了一块材料在2003-10-1至2003-10-30时间段内
假设只有这两条记录的话
检索出来应该是

材料id, 数量
材料1, 1

请问这样的统计该怎样检索?

...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
orcale 2003-10-22
  • 打赏
  • 举报
回复
select c.材料id,count(c.材料id) as 數量,sum(c.面積) as 總面積,sum(c.單價) as 總金額 from (select a.材料id,b.面積,b.單價 from 表1 a,表2 b where a.材料id=b.材料id and a.使用時間 between '2003-10-01' and '2003-10-11')c group by c.材料id
order by c.材料id
szqiming 2003-10-22
  • 打赏
  • 举报
回复
表1
订单id,材料id,材料批号,材料箱号,材料序号,使用时间
表2
材料id,面积,单价

查询的结果
材料id, 使用数量,总面积,总金额 (要求是在一个时间范围内,根据使用时间)

因为有的订单用的是同一块材料,所以表1中那些材料id,材料批号,材料箱号,材料序号相同
的记录只能算一条有效的(在一个选择的时间范围内)

比如
1,材料1,123,35,2,2003-10-10
2,材料1,123,35,2,2003-10-11

像这样的情况只能算用了一块材料在2003-10-1至2003-10-30时间段内
假设只有这两条记录的话
检索出来应该是

材料id, 数量 总面积,总金额
材料1, 1
aierong 2003-10-22
  • 打赏
  • 举报
回复
不明白你的意思
可以把表结构和数据拿出来吗
szqiming 2003-10-22
  • 打赏
  • 举报
回复
需要按时间段来查询
楼上的那种方法把表里面所有的数据都查出来的
zarge 2003-10-22
  • 打赏
  • 举报
回复
select 材料id, count(*)
from (select distinct 材料id, 材料批号,材料箱号,材料序号 from 表) sem
group by 材料id

34,874

社区成员

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

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