select a.prdt_no,b.acc_hrt,c.acc_name from in_mst a,in_parm b,com_item c where a.prdt_no=b.prdt_no and b.acc_hrt=c.acc_hrt left join (select sum(bal),a.prdt_no from in_mst a group by a.prdt_no having sum(bal)>0 ) d on d.prdt_no=a.prdt_no
这个语句提示命令行没有正确结束,请问哪有问题?

解决方案 »

  1.   

    SELECT  t.a_no ,
            t.b_hrt ,
            t.c_name ,
            s.bal
    FROM    ( SELECT    a.prdt_no AS a_no ,
                        b.acc_hrt AS b_hrt ,
                        c.acc_name AS c_name
              FROM      in_mst a ,
                        in_parm b ,
                        com_item c
              WHERE     a.prdt_no = b.prdt_no
                        AND b.acc_hrt = c.acc_hrt
            ) t
            LEFT JOIN ( SELECT  a.prdt_no AS a_no ,
                                SUM(a.bal) AS bal
                        FROM    in_mst a
                        GROUP BY a.prdt_no
                        HAVING  SUM(a.bal) > 0
                      ) s ON t.a_no = s.a_no这个错误经常在left jion这样的语句中出现
      

  2.   

    select a.prdt_no, b.acc_hrt, c.acc_name
      from in_mst a, in_parm b, com_item c,
       (select sum(bal), a.prdt_no
                   from in_mst a
                  group by a.prdt_no
                 having sum(bal) > 0) d
     where a.prdt_no = b.prdt_no
       and b.acc_hrt = c.acc_hrt
      and d.prdt_no = a.prdt_no
      

  3.   

    select a.prdt_no, b.acc_hrt, c.acc_name
      from in_mst a, in_parm b, com_item c
      left join (select sum(bal), a.prdt_no
                   from in_mst a
                  group by a.prdt_no
                 having sum(bal) > 0) d on d.prdt_no = a.prdt_no
     where a.prdt_no = b.prdt_no
       and b.acc_hrt = c.acc_hrt你的left join位置写错了 应该写在where前面