where句の中で "weight"という演算SUMの結果を使用するときに問題が発生します。私はあなたの助けに感謝します。ここでは、クエリは次のとおりです。WHERE句でSUM結果を使用したときのエラー
SELECT o.reference
, SUM(od.product_weight * od.product_quantity) weight
, SUM(od.total_price_tax_incl) total_paid_products
, d.price
, o.module
, rw.id_range_weight
FROM ps_orders o
, ps_order_detail od
, ps_product p
, ps_supplier s
, ps_delivery d
, ps_address a
, ps_state state
, ps_range_weight rw
WHERE o.id_order = od.id_order
AND p.id_product = od.product_id
AND s.id_supplier = p.id_supplier
AND o.id_address_delivery = a.id_address
AND a.id_state = state.id_state
AND d.id_zone = state.id_zone
AND d.id_range_weight = rw.id_range_weight
AND rw.delimiter1 <= weight
AND weight < rw.delimiter2
AND 5 = rw.id_carrier
AND p.id_supplier = 1
AND YEAR(o.date_upd) = 2016
AND MONTH(o.date_upd) = 5
AND o.current_state IN(2,3,4,5,15,16)
AND o.module IN('paypal','redsys','bankwire')
GROUP
BY o.reference
ORDER
BY o.date_upd DESC
私は10を使用して、それは完璧に動作数、例えば体重を交換する場合句は... SUM結果、常に値0を持っていないに値「重み」代わりに重量の:
は、あなたの時間のためにみんなありがとう!
だから問題は何ですか?何が効いていないのですか?どのように機能していないのですか? –
一般的に、SELECT句の集約されていない列もGROUP BY句に含める必要があります。また、古典的な結合構文を使用しないでください。 – Strawberry
こんにちは@SamiKuhmonen、where句で "weight"を使用した場合の結果は、 "0"を使用した場合と同じですが、ウェイト値は決して0ではなく、10、1でなければなりません...理由はわかりませんSUM値を保持しません。 @Strawberryの構文は何が問題なのですか? –