我想写一个SQL,不知怎么写
Select SUM(表A.字段A),
           表A.字段B,
       (select 表B.字段1 from 表B where 表B.字段1 = 表A.字段B)
From 表A
group by 表A.字段B,(select 表B.字段1 from 表B where 表B.字段1 = 表A.字段B)
主要问题是group by 里(select 表B.字段1 from 表B where 表B.字段1 = 表A.字段B)不正确,不知道应怎么写

解决方案 »

  1.   

    Select SUM(表A.字段A),
               表A.字段B,
               T.字段1 字段1
    From 表A,(select 表B.字段1 from 表B where 表B.字段1 = 表A.字段B) T
    WHERE 表B与表A相关联的条件
    group by 表A.字段B,字段1
    大概该这样吧,不知道有什么其他方法.
      

  2.   

    Select SUM(表A.字段A),
               表A.字段B,
               表B.字段1
    From 表A,表B 
    where 表B.字段1 = 表A.字段B
    group by 表A.字段B,表B.字段1
      

  3.   

    发现你的sql有问题
      表A.字段B,
    (select 表B.字段1 from 表B where 表B.字段1 = 表A.字段B)//这一行有什么用,因为你表B.字段1=A.字段B,和你前面那个始终是相等的
    还有
    zealot_001() ( ) 信誉:100    Blog   加为好友 
    写的应该是没问题的,有什么问题你说啊!
      

  4.   

    我是把我的SQL简化了,这样吧,我把语句拿出来你们看看
    Select  sum(outp_bill_detail.charges),
    outp_bill_detail.ordered_by,
    outp_bill_detail.performed_by,
    (select class_name from reck_item_class_dict ,price_list
     Where  price_list.item_code = outp_bill_detail.item_code
    and  price_list.class_on_reckoning = reck_item_class_dict.class_code
    group by class_name) class_name
    from outp_bill_detail,outp_orders
    where  outp_bill_detail.visit_date = outp_orders.visit_date
    and  outp_bill_detail.visit_no = outp_orders.visit_no
    and  outp_bill_detail.patient_id = outp_orders.patient_id
    and outp_orders.prepay_rcpt_no is not null
    and  to_char(outp_bill_detail.visit_date,'yyyy-mm-dd') between :ls_start and :ls_end
    group by outp_bill_detail.ordered_by,outp_bill_detail.performed_by ,class_name
    提示分组出错
      

  5.   

    你的sql有点乱,没细看
    你要么把你
    select class_name from reck_item_class_dict ,price_list
     Where  price_list.item_code = outp_bill_detail.item_code
    and  price_list.class_on_reckoning = reck_item_class_dict.class_code
    group by class_name) class_name
    写在 from后面,可以写字查询的嫌麻烦的话也有个简单的方法
    多套层
    select sum(charges),ordered_by,performed_by,class_name from (Select  outp_bill_detail.charges,
    outp_bill_detail.ordered_by,
    outp_bill_detail.performed_by,
    (select class_name from reck_item_class_dict ,price_list
     Where  price_list.item_code = outp_bill_detail.item_code
    and  price_list.class_on_reckoning = reck_item_class_dict.class_code
    group by class_name) class_name
    from outp_bill_detail,outp_orders
    where  outp_bill_detail.visit_date = outp_orders.visit_date
    and  outp_bill_detail.visit_no = outp_orders.visit_no
    and  outp_bill_detail.patient_id = outp_orders.patient_id
    and outp_orders.prepay_rcpt_no is not null
    and  to_char(outp_bill_detail.visit_date,'yyyy-mm-dd') between :ls_start and :ls_end)
    group by outp_bill_detail.ordered_by,outp_bill_detail.performed_by ,class_name
      

  6.   

    这里有sum(outp_bill_detail.charges),下面group by 就必须有outp_bill_detail.charges,否则肯定会报错,看了下,没有
      

  7.   

    select t.字段A,t.字段B,表B.字段1
      from (Select SUM(表A.字段A) 字段A,表A.字段B  字段B,
              From 表A
             group by 表A.字段B) t,表B
     where   表B.字段1 = t.字段B这样行吗?