select 材料id, count(*)
from (select distinct 材料id, 材料批号,材料箱号,材料序号 from 表) sem
group by 材料id

解决方案 »

  1.   

    表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
      

  2.   

    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