SELECT b.price, c.zbxh, d.chinaname, d.chinaspec, e.unitname, f.brand, f.Produce_Factory, 
      f.Minpacking, f.zlcc, f.qtsm, f.Elucidation, h.Enterprisename
FROM dbo.drexpert_pb a LEFT OUTER JOIN
      dbo.user_product b ON a.user_productid = b.id AND a.bid_id = b.bidid AND 
      a.bid_id = b.bidid LEFT OUTER JOIN
      dbo.bid_product c ON b.bid_productID = c.id AND b.bidid = c.bidid LEFT OUTER JOIN
      dbo.product_basic d ON c.product_basicid = d.id LEFT OUTER JOIN
      dbo.product_qt f ON b.id = f.user_productid AND 
      b.id = f.user_productid LEFT OUTER JOIN
      dbo.unit e ON d.unitid = e.id LEFT OUTER JOIN
      dbo.EnterpriseBasicInfor h ON b.userid = h.userid
where a.bid_id=27 group by f.zlcc,a.auser_product having count(1)>=3

解决方案 »

  1.   

    SELECT 
        b.price, 
        c.zbxh, 
        d.chinaname, 
        d.chinaspec, 
        e.unitname, 
        f.brand, 
        f.Produce_Factory, 
        f.Minpacking, 
        f.zlcc, 
        f.qtsm, 
        f.Elucidation, 
        h.Enterprisename
    into #T
    FROM 
        dbo.drexpert_pb a 
    LEFT OUTER JOIN
        dbo.user_product b 
    ON 
        a.user_productid = b.id AND a.bid_id = b.bidid AND a.bid_id = b.bidid 
    LEFT OUTER JOIN
        dbo.bid_product c 
    ON 
        b.bid_productID = c.id AND b.bidid = c.bidid 
    LEFT OUTER JOIN
        dbo.product_basic d 
    ON 
        c.product_basicid = d.id 
    LEFT OUTER JOIN
        dbo.product_qt f 
    ON 
        b.id = f.user_productid AND b.id = f.user_productid 
    LEFT OUTER JOIN
        dbo.unit e 
    ON 
        d.unitid = e.id 
    LEFT OUTER JOIN
        dbo.EnterpriseBasicInfor h 
    ON 
        b.userid = h.useridselect
        a.*
    from
        #T a
    where
        a.bid_id=27
        and
        (select count(*) from #T where zlcc=a.zlcc)>1
        and
        (select count(*) from #T where user_product=a.user_product)>=3
      

  2.   

    select * from 
    (
    SELECT b.price, c.zbxh, d.chinaname, d.chinaspec, e.unitname, f.brand, f.Produce_Factory, 
          f.Minpacking, f.zlcc, f.qtsm, f.Elucidation, h.Enterprisename
    FROM dbo.drexpert_pb a LEFT OUTER JOIN
          dbo.user_product b ON a.user_productid = b.id AND a.bid_id = b.bidid AND 
          a.bid_id = b.bidid LEFT OUTER JOIN
          dbo.bid_product c ON b.bid_productID = c.id AND b.bidid = c.bidid LEFT OUTER JOIN
          dbo.product_basic d ON c.product_basicid = d.id LEFT OUTER JOIN
          dbo.product_qt f ON b.id = f.user_productid AND 
          b.id = f.user_productid LEFT OUTER JOIN
          dbo.unit e ON d.unitid = e.id LEFT OUTER JOIN
          dbo.EnterpriseBasicInfor h ON b.userid = h.userid
    ) a
    where 
    (select count(1) from 
    (
    SELECT b.price, c.zbxh, d.chinaname, d.chinaspec, e.unitname, f.brand, f.Produce_Factory, 
          f.Minpacking, f.zlcc, f.qtsm, f.Elucidation, h.Enterprisename
    FROM dbo.drexpert_pb a LEFT OUTER JOIN
          dbo.user_product b ON a.user_productid = b.id AND a.bid_id = b.bidid AND 
          a.bid_id = b.bidid LEFT OUTER JOIN
          dbo.bid_product c ON b.bid_productID = c.id AND b.bidid = c.bidid LEFT OUTER JOIN
          dbo.product_basic d ON c.product_basicid = d.id LEFT OUTER JOIN
          dbo.product_qt f ON b.id = f.user_productid AND 
          b.id = f.user_productid LEFT OUTER JOIN
          dbo.unit e ON d.unitid = e.id LEFT OUTER JOIN
          dbo.EnterpriseBasicInfor h ON b.userid = h.userid
    ) b where a.zlcc=b.zlcc and a.user_product=b.user_product)>=3
    and a.bid_id=27
      

  3.   

    SELECT b.price, c.zbxh, d.chinaname, d.chinaspec, e.unitname, f.brand, f.Produce_Factory, 
          f.Minpacking, f.zlcc, f.qtsm, f.Elucidation, h.Enterprisename
    FROM dbo.drexpert_pb a LEFT OUTER JOIN
          dbo.user_product b ON a.user_productid = b.id AND a.bid_id = b.bidid AND 
          a.bid_id = b.bidid LEFT OUTER JOIN
          dbo.bid_product c ON b.bid_productID = c.id AND b.bidid = c.bidid LEFT OUTER JOIN
          dbo.product_basic d ON c.product_basicid = d.id LEFT OUTER JOIN
          dbo.product_qt f ON b.id = f.user_productid AND 
          b.id = f.user_productid LEFT OUTER JOIN
          dbo.unit e ON d.unitid = e.id LEFT OUTER JOIN
          dbo.EnterpriseBasicInfor h ON b.userid = h.userid
    where a.bid_id=27 and f.zlcc+a.auser_product
    (SELECT f.zlcc+a.auser_product
    FROM dbo.drexpert_pb a LEFT OUTER JOIN
          dbo.user_product b ON a.user_productid = b.id AND a.bid_id = b.bidid AND 
          a.bid_id = b.bidid LEFT OUTER JOIN
          dbo.bid_product c ON b.bid_productID = c.id AND b.bidid = c.bidid LEFT OUTER JOIN
          dbo.product_basic d ON c.product_basicid = d.id LEFT OUTER JOIN
          dbo.product_qt f ON b.id = f.user_productid AND 
          b.id = f.user_productid LEFT OUTER JOIN
          dbo.unit e ON d.unitid = e.id LEFT OUTER JOIN
          dbo.EnterpriseBasicInfor h ON b.userid = h.userid
    group by f.zlcc,a.auser_product having count(1)>=3)
      

  4.   

    SELECT b.price, c.zbxh, d.chinaname, d.chinaspec, e.unitname, f.brand, f.Produce_Factory, 
          f.Minpacking, f.zlcc, f.qtsm, f.Elucidation, h.Enterprisename
    FROM dbo.drexpert_pb a LEFT OUTER JOIN
          dbo.user_product b ON a.user_productid = b.id AND a.bid_id = b.bidid AND 
          a.bid_id = b.bidid LEFT OUTER JOIN
          dbo.bid_product c ON b.bid_productID = c.id AND b.bidid = c.bidid LEFT OUTER JOIN
          dbo.product_basic d ON c.product_basicid = d.id LEFT OUTER JOIN
          dbo.product_qt f ON b.id = f.user_productid AND 
          b.id = f.user_productid LEFT OUTER JOIN
          dbo.unit e ON d.unitid = e.id LEFT OUTER JOIN
          dbo.EnterpriseBasicInfor h ON b.userid = h.userid
    where a.bid_id=27 and f.zlcc+a.auser_product in
    (SELECT f.zlcc+a.auser_product
    FROM dbo.drexpert_pb a LEFT OUTER JOIN
          dbo.user_product b ON a.user_productid = b.id AND a.bid_id = b.bidid AND 
          a.bid_id = b.bidid LEFT OUTER JOIN
          dbo.bid_product c ON b.bid_productID = c.id AND b.bidid = c.bidid LEFT OUTER JOIN
          dbo.product_basic d ON c.product_basicid = d.id LEFT OUTER JOIN
          dbo.product_qt f ON b.id = f.user_productid AND 
          b.id = f.user_productid LEFT OUTER JOIN
          dbo.unit e ON d.unitid = e.id LEFT OUTER JOIN
          dbo.EnterpriseBasicInfor h ON b.userid = h.userid
    group by f.zlcc,a.auser_product having count(1)>=3)
      

  5.   

    wgsasd311(自强不息)查出来的记录是重复的呀,怎么过虑呀,第条同一条记录显示3次,怎么把这个过虑掉,只显示一次
      

  6.   

    你不会是超超超漂亮的MM吧,有QQ吗>留一个,我帮你解答.
      

  7.   

    使用DISTINCT去掉重复的吧。
    USE pubs
    SELECT AVG(DISTINCT price)
    FROM titles
    WHERE type = 'business'支持小龙(^_____^) V
      

  8.   

    顺便问下小龙,access是否支持join查询
      

  9.   

    如果Access就惨点;
    如果是SQL Server,尽量先建立一些视图来简化你的sql语句吧!
    至于以上各位高人的答案,我想验证也是要化一些时间的。
    呵呵
      

  10.   

    SELECT 
        b.price, 
        c.zbxh, 
        d.chinaname, 
        d.chinaspec, 
        e.unitname, 
        f.brand, 
        f.Produce_Factory, 
        f.Minpacking, 
        f.zlcc, 
        f.qtsm, 
        f.Elucidation, 
        h.Enterprisename
    into #T
    FROM 
        dbo.drexpert_pb a 
    LEFT OUTER JOIN
        dbo.user_product b 
    ON 
        a.user_productid = b.id AND a.bid_id = b.bidid AND a.bid_id = b.bidid 
    LEFT OUTER JOIN
        dbo.bid_product c 
    ON 
        b.bid_productID = c.id AND b.bidid = c.bidid 
    LEFT OUTER JOIN
        dbo.product_basic d 
    ON 
        c.product_basicid = d.id 
    LEFT OUTER JOIN
        dbo.product_qt f 
    ON 
        b.id = f.user_productid AND b.id = f.user_productid 
    LEFT OUTER JOIN
        dbo.unit e 
    ON 
        d.unitid = e.id 
    LEFT OUTER JOIN
        dbo.EnterpriseBasicInfor h 
    ON 
        b.userid = h.userid--查询
    select
        a.*
    from
        #T a
    where
        a.bid_id=27
        and
        (select count(*) 
            from #T 
               where zlcc=a.zlcc 
                      and user_product=a.user_product
         )>=3