就是现在有两个表A和B,是互相关联的两个表。
A表
    产品名称      产品数量 
    黄瓜           2
    茄子           3B表
    产品名称      产品数量
    黄瓜           1
    黄瓜           3
    茄子           1
    茄子           1
    茄子           1
    茄子           1
我的意思是怎么根据A表统计B表的产品数量和A表比较。
SELECT *,count(B.产品数量) FROM A INNER JOIN  B ON A.产品名称= B.产品名称 where  A.产品数量>B.产品数量 像这样的语句怎么写啊。

解决方案 »

  1.   

    select c.产品名称,c.产品数量 from
    (
    select a. 产品数量 as  产品数量2,b.* from B as b left join A as a
    on a.产品名称=b.产品名称
    ) as c
    where c.产品数量>c.产品数量2
      

  2.   

    select AA.产品名称,BB.产品数量
    from 
    (
    select 产品名称,产品数量 from A
    )AA
    left join
    (
    select distinct(产品名称),count(产品数量) from B group by 产品名称
    )BB
    on AA.产品名称=BB.产品名称 and AA.产品数量>BB.产品数量看这个可以否
      

  3.   

    sql:select A.* From A, 
    (Select 产品名称, SUM( 产品数量 ) as TotalCount From B Group By 产品名称 ) as 
    BTotalTable
    where A.产品名称= BTotalTable.产品名称 where A.产品数量>BTotalTable.TotalCount
      

  4.   

    楼主的意思是比较A表和B表的合计数吗?以下以A为主表,对比数量SELECT A.产品名称,IsNull(Sum(A.产品数量),0) AS A数量,IsNull(Sum(B.产品数量),0) AS B数量
    FROM A
    LEFT JOIN B ON B.产品名称=A.产品名称
    GROUP BY A.产品名称
    HAVING IsNull(Sum(A.产品数量),0)>IsNull(Sum(B.产品数量),0)  //只查A数量>B数量的产品