SELECT DISTINCT pdclass.brokerage,PDClass.id, PDClass.class_name, PDClass.id_code,0 as total1, SUM(order_products.sub_total) AS total2 FROM (((order_products LEFT OUTER JOIN orders ON (order_products.order_id = CSTR(orders.ID)  )) RIGHT OUTER JOIN products ON order_products.p_id = products.id) RIGHT OUTER JOIN PDClass ON LEFT(products.class_code, 4) = PDClass.id_code)WHERE (len(PDClass.id_code) = 4) GROUP BY  pdclass.brokerage,PDClass.id, PDClass.class_name, PDClass.id_code结果集
brokerage id class_name id_code total1 total2
.3 331 礼品 0002 0 39409.6401230097
.3 334 化妆品 0005 0 9031.49998855591
.3 335 箱包服饰 0006 0 3497.89990139008
.3 337 办公文品 0027 0 420.399998664856
.3 362 家居用品 0020 0 17229.6598096862
.3 363 消费电子 0021 0 4185.1799530983
.3 396 健康食品 0022 0 0
.3 404 健康休闲 0023 0 7338.70000076294
.3 415 母婴儿童 0024 0 41.2000007629395
.3 432 图书音像 0026 0 0
加入where查询条件and Orders.add_time>{0} and Orders.add_time<{1} and Orders.unionID='{2}'
结果集:无记录
预期结果集
记录数一样,但total2为0请问各位大哥这个查询条件要加在哪里

解决方案 »

  1.   

    你既然group了 还要distinct有什么用呀?
    猜测问题出在外连接上,你把不加where的语句做成一个视图,然后在视图的基础上在加上where看看如何。
      

  2.   

    恩,确实,distinct是多余,但是现在是这个查询条件应该放哪里才能得到我要的结果集
      

  3.   

    問題描述不清是導致現在很多人看帖不回貼、回帖只“jf”的一個很重要的原因。先檢視自己加的條件
    and Orders.add_time>{0} and Orders.add_time <{1} and Orders.unionID='{2}' 
    是否正確;
    sql語句寫的確實亂,建議理清思路作好調整,方便于日後修改與維護。
      

  4.   

    SELECT a.*,c.折扣比 FROM 订单表 a
    INNER JOIN 订单产品表 b
    ON a.产品号=b.产品编号
    INNER JOIN 产品类型 c
    ON c.类型编码 LIKE '[0-9][0-9][0-9][0-9]'
       AND c.类型编码 LIKE '%' + b.所属类型编码 + '%'
    WHERE 客户名 = 值