none
求一个对比查找的SQL语句 RRS feed

  • 问题

  • 有表A ,内容如下

        id    loacl     customer     cur    receable         type         dt

        1      SH        MSC          USD    100000.00          M      2010.12.31

        2      SH        EMS           RMB   10000.00            V     2010.12.31

        3      GZ        CY            RMB   150000.00          V       2010.12.31

        4      GZ        CTM           USD    100000.00       T         2010.12.31

     

     

    我需要找出同一天里,收款币种和 type 为 M 的客户相同,并 type 为T 的客户的纪录

    2011年1月24日 1:56

答案

  • SELECT
      *
    FROM
      (SELECT cur,SUM(receable)AS receable FROM A WHERE Type='M' GROUP BY cur)t1
    FULL JOIN
      (SELECT cur,SUM(receable)AS receable FROM A WHERE Type='T' GROUP BY cur)t2 ON t1.cur=t2.cur
    
    


    ROY WU(吳熹)
    • 已标记为答案 scate233 2011年1月25日 1:17
    2011年1月24日 3:13
    版主
  • SELECT ob.*
    FROM   a oa
           INNER JOIN a AS ob
             ON oa.TYPE = 'M'
                AND ob.TYPE = 'T'
                AND oa.cur = ob.cur
                AND oa.dt = ob.dt 
    • 已标记为答案 scate233 2011年1月25日 1:17
    2011年1月24日 5:13

全部回复

  • 描述还是不清楚,能将结果列举出来么?

     


    family as water
    2011年1月24日 2:42
  • SELECT
      *
    FROM
      (SELECT cur,SUM(receable)AS receable FROM A WHERE Type='M' GROUP BY cur)t1
    FULL JOIN
      (SELECT cur,SUM(receable)AS receable FROM A WHERE Type='T' GROUP BY cur)t2 ON t1.cur=t2.cur
    
    


    ROY WU(吳熹)
    • 已标记为答案 scate233 2011年1月25日 1:17
    2011年1月24日 3:13
    版主
  • SELECT ob.*
    FROM   a oa
           INNER JOIN a AS ob
             ON oa.TYPE = 'M'
                AND ob.TYPE = 'T'
                AND oa.cur = ob.cur
                AND oa.dt = ob.dt 
    • 已标记为答案 scate233 2011年1月25日 1:17
    2011年1月24日 5:13