现有一卖场数据表,字段有ID,NO,营业食堂区分,确认区分等,ID,NO为主键.
营业食堂区分=0时,卖场为营业卖场,营业食堂区分=1时,卖场为食堂卖场.
确认区分=1时,已确认.
现在我要查询出一个ID的营业卖场有几个,已确认的营业卖场有几个,食堂卖场有几个,已确认食堂卖场有几个.
查询结果如下例所示:
ID       营业卖场        已确认营业卖场       食堂卖场      已确认食堂卖场
1001        15               6                 12               8
尽量少使用子查询,谢谢.

解决方案 »

  1.   

    最好可以用一个SELECT查询出所需的结果,谢谢
      

  2.   

    现有一卖场数据表,字段有ID,NO,营业食堂区分,确认区分等,ID,NO为主键. 
    营业食堂区分=0时,卖场为营业卖场,营业食堂区分=1时,卖场为食堂卖场. 
    确认区分=1时,已确认.ID       营业卖场        已确认营业卖场       食堂卖场      已确认食堂卖场 
    --
    select id,
    sum(case when 营业食堂区分= 0 then 1 else 0 end) 营业卖场,
    sum(case when 营业食堂区分= 0 and 确认区分=1 then 1 else 0 end) 已确认营业卖场,
    sum(case when 营业食堂区分= 1 then 1 else 0 end) 食堂卖场,
    sum(case when 营业食堂区分= 1 and 确认区分=1 then 1 else 0 end) 已确认食堂卖场
    from ta
    group by id
      

  3.   

    现有一卖场数据表,字段有ID,NO,营业食堂区分,确认区分等,ID,NO为主键. 
    营业食堂区分=0时,卖场为营业卖场,营业食堂区分=1时,卖场为食堂卖场. 
    确认区分=1时,已确认. 
    现在我要查询出一个ID的营业卖场有几个,已确认的营业卖场有几个,食堂卖场有几个,已确认食堂卖场有几个. 
    查询结果如下例所示: 
    ID       营业卖场        已确认营业卖场       食堂卖场      已确认食堂卖场 
    1001        15               6                 12               8select id
        ,[营业卖场] = sum(case 营业食堂区分 when 0 then 1 else 0 end)
        ,[已确认营业卖场] = sum(case 营业食堂区分 when 0 then 1 else 0 end * 确认区分)
        ,[食堂卖场] = sum(case 营业食堂区分 when 1 then 1 else 0 end)
        ,[已确认食堂卖场] = sum(case 营业食堂区分 when 1 then 1 else 0 end * 确认区分 )
    from [卖场数据表]
    group by id
      

  4.   


    select id , 
      sum(case 营业食堂区分 when 0 then 1 else 0 end) 营业卖场,
      sum(case 营业食堂区分 when 1 then 1 else 0 end) 食堂卖场
    from tb 
    group by id--其他两个不知道怎么搞?
      

  5.   

    select id ,  
      sum(case 营业食堂区分 when 0 then 1 else 0 end) 营业卖场,
      sum(case when 营业食堂区分 = 0 and 确认区分 = 1 then 1 else 0 end) 已确认营业卖场,
      sum(case 营业食堂区分 when 1 then 1 else 0 end) 食堂卖场, 
      sum(case when 营业食堂区分 = 1 and 确认区分 = 1 when 1 then 1 else 0 end) 已确认食堂卖场 
    from tb  
    group by id 
      

  6.   

    select id,sum(case when 营业食堂区分=0 then 1 else 0 end) 营业卖场,
              sum(case when 营业食堂区分=0 and 确认区分=1 then 1 else 0 end) 已确认营业卖场,
              sum(case when 营业食堂区分=1 then 1 else 0 end) 食堂卖场,
              sum(case when 营业食堂区分=1 and 确认区分=1 then 1 else 0 end) 已确认食堂卖场
    from table;
      

  7.   

    select id,sum(case when 营业食堂区分=0 then 1 else 0 end) 营业卖场,
              sum(case when 营业食堂区分=0 and 确认区分=1 then 1 else 0 end) 已确认营业卖场,
              sum(case when 营业食堂区分=1 then 1 else 0 end) 食堂卖场,
              sum(case when 营业食堂区分=1 and 确认区分=1 then 1 else 0 end) 已确认食堂卖场
    from table 
    group by id;