2

初めて投稿します。

私はこのレポートの問題点を理解しようとしてきました。このレポートでは、最近販売されて返品されなかった (+ 価格ではなく) 製品のシリアル番号を表示したいと考えています。

商品が最後に販売され、最後に返品されていない場合、商品が販売済みとしてマークされているかどうかを確認したい.

サブクエリが必要かもしれませんが、最初の部分がわかりません。

SELECT 
    ps.serial,p.upc,p.name,so.date_sold 
FROM 
    store_orders so 
    LEFT JOIN store_order_products sop ON so.id = sop.order_id
    LEFT JOIN products p ON sop.product_id = p.id 
    LEFT JOIN product_serials ps ON ps.serial = sop.product_serial
WHERE 
    (CAST(so.date_sold AS DATE) BETWEEN '2013-4-15' AND '2013-5-15')
    AND ps.deleted = '0' AND sop.price > 0
ORDER BY 
    sop.id DESC
LIMIT 10

最後に販売されただけでなく、最後に返品された可能性のある製品を返品しています。

`ID Serial  Price
1: 8332-83 10.00
2: 8332-83 -10.00
Dont want to see this because it was returned last, not sold last

ID Serial  Price
2: 8332-82 10.00
1: 8332-82 -10.00
This was sold last not returned so looking to see this serial`

助けてください。前もって感謝します。ジョー

4

1 に答える 1

1

わかりました、自分のおかげでそれを理解しました。しかし、この種の問題を抱えている他の人にとっては、どうぞ。

トリプルネスティ(笑)

SELECT * FROM (
SELECT * FROM (
SELECT 
    so.id,sop.product_serial,p.upc,sop.price,p.name,so.date_sold 
FROM 
    store_orders so 
    LEFT JOIN store_order_products sop ON so.id = sop.order_id
    LEFT JOIN products p ON sop.product_id = p.id 
    LEFT JOIN product_serials ps ON ps.serial = sop.product_serial
WHERE ps.deleted = '0' AND so.store_id = '$store_id'
ORDER BY 
    sop.id DESC
LIMIT 1000
) AS t
GROUP BY t.product_serial
) AS t2
WHERE t2.price > 0
于 2013-05-21T21:54:33.557 に答える