分组查询实例讲解group by用法

已知:需要查询  采购员,采购时间,合同编号,合同金额  这四个字段,其中前三个字段能从一张表里查出来,合同金额是另一张表的多条订单的和,

求:用一条SQL查出四个字段


解:订单表:

       select * from view_order    
       

        前三个字段查询:

       select t.ORDER_BUYERNAME ,t.ORDER_BUYDATE ,t.ORDER_CODE from view_order t order by t.ORDER_BUYDATE desc--订单信息表:采购员、采购时间、合同编号

    订单明细表:

    select * from view_orderdetail
      

      第四个字段查询:

      select sum(v.OD_TOTALPRICE)*1.17  sum_TOTALPRICE from view_orderdetail v ,view_order t  where v.OD_ORDERCODE =t.ORDER_CODE and t.ORDER_CODE ='4500498951'----合同金额       --1.17是含税


    用Group by  ,一条SQL写出:


select t.ORDER_BUYERNAME ,t.ORDER_BUYDATE ,t.ORDER_CODE,tt.sum_TOTALPRICE from view_order t ,  (select t.ORDER_CODE ORDER_CODE , sum(v.OD_TOTALPRICE)*1.17 sum_TOTALPRICE from view_orderdetail v ,view_order t 

where v.OD_ORDERCODE =t.ORDER_CODE
group by t.ORDER_CODE) tt

where t.ORDER_CODE=tt.ORDER_CODE


分析:

select t.ORDER_CODE ORDER_CODE , sum(v.OD_TOTALPRICE)*1.17 sum_TOTALPRICE from view_orderdetail v ,view_order t where v.OD_ORDERCODE =t.ORDER_CODE group by t.ORDER_CODE) tt

查出来的是ORDER_CODE  和 sum_TOTALPRICE这两个字段,这两个字段当成一个整体,和view_order 进行关系比较查询,通过 t.ORDER_CODE=tt.ORDER_CODE查到要求的四个字段

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值