SQL分组查询

经常见到,记录一下。根据查询各公司各种类型各有多少条工程数据。

客户表中:COMPANY_ID,type(类型有几种,得根据类型分组查)


于是,sql server结果:

选择t.COMPANY_ID,
       o.NAME,
       (
          从[snsn]中选择count(p.id)。[dbo]。[T_CUSTOMER_PROJECT_PROPHASE] P
         其中p.customer_id
               (
                  从[snsn]中选择c.id。[dbo]。[ T_CUSTOMER_INFO] c
                 其中t.company_id = c.company_id
                   和c.CUSTOMER_VOLTAGE_GRADE ='0'))为“110kV”,
       (
          从[snsn] 选择计数(p.id)。[dbo]。[T_CUSTOMER_PROJECT_PROPHASE] P
         其中p。 customer_id in
               (
                  从[snsn]中选择c.id。[dbo]。[T_CUSTOMER_INFO] c
                 其中t.company_id = c.company_id
                   和c.CUSTOMER_VOLTAGE_GRADE ='1'))为“35kV”,
       (
          从[snsn]中选择计数(p.id)。[dbo]。[T_CUSTOMER_PROJECT_PROPHASE] P
         其中p.customer_id
               (
                  从[snsn]中选择c.id ] 。[dbo]。[T_CUSTOMER_INFO] c
                 其中t.company_id = c.company_id
                   和c.CUSTOMER_VOLTAGE_GRADE ='2'))为“10kV”,
       (
          从[snsn]中选择COUNT(g.ID)。[dbo]。[ gc_project] g
         其中g.CUSTOMER_NAME在
               (
                  从[snsn]中选择c.BID_IMPLEMENTATION_UNIT 。[dbo]。[T_CUSTOMER_INFO] c
                 其中t.company_id = c。COMPANY_ID
                   并且c.CUSTOMER_VOLTAGE_GRADE ='0'))为“g110kV”,
       (
          从[snsn]中选择COUNT(g.ID)。[dbo]。[gc_project] g
         其中g.CUSTOMER_NAME在
               (
                  从[snsn]中选择c.BID_IMPLEMENTATION_UNIT) 。[dbo]。[T_CUSTOMER_INFO] c
                 其中t.company_id = c.company_id
                   和c.CUSTOMER_VOLTAGE_GRADE ='1'))为“g35kV”,
       (
          从[snsn]中选择COUNT(g.ID)。[dbo]。[ gc_project] g
         g.CUSTOMER_NAME在哪里
               (
                  从[snsn]中选择c.BID_IMPLEMENTATION_UNIT 。[dbo]。[T_CUSTOMER_INFO] c
                 其中t.company_id = c.company_id
                   和c.CUSTOMER_VOLTAGE_GRADE ='2'))为“g10kV”
  FROM [snsn]。[dbo]。[T_CUSTOMER_INFO] t
  left join [snsn]。[dbo]。[SYS_OFFICE] o
    o.ID = t.COMPANY_ID

 由t.COMPANY_ID,o.NAME分组


另外一种查询方法:

选择o.NAME,a.CUSTOMER_VOLTAGE_GRADE,count(p.ID)
  from(select t.id,t.COMPANY_ID,t.CUSTOMER_VOLTAGE_GRADE
          from [snsn]。[dbo]。[T_CUSTOMER_INFO] t)
  左连接[snsn]。[dbo]。[SYS_OFFICE] o
    在a.COMPANY_ID = o.ID
  左连接[snsn]。[dbo]。[T_CUSTOMER_PROJECT_PROPHASE] P
    在p.customer_id = a.id
 组中按o.NAME,a.CUSTOMER_VOLTAGE_GRADE

 顺序由o.NAME

但是这种查出来不好遍历在页面上额:


上面那种查出来就很舒服啊虽然sql多一点

有大神会更舒服的请贴给我,谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值