MySQL での結合に問題があります。customerorder と customerorderpos の 2 つのテーブルがあります。pos テーブルには注文されたアイテムが含まれます。したがって、customerorder テーブルには注文ごとに常に 1 つのエントリしかありませんが、customerorderpos には同じ customerorderid を持つ複数のエントリが存在する場合があります。
customerorder で合計計算を実行しようとする場合を除いて、すべてがクエリで機能します。たとえば、sum(cart_total_complete)。これは重複した値を返しています (複数の customerorderpos レコードを持つ注文に対して複数回カウントされています)。
結合タイプまたは個別の使用方法のいずれかで、それは基本的なものだと確信していますが、何時間も試してみましたが、うまくいきません...
私が間違っていることはありますか?ご協力いただきありがとうございます!!
select concat(left(dayname(from_unixtime(customerorder.datetime)),3), ' ',
day(from_unixtime(customerorder.datetime))) as day,
count(distinct customerorder.customerorderid) as count_totalorders,
count(distinct customerorderpos.itemid) as count_differentitems,
sum(customerorderpos.quantity_ordered - customerorderpos.quantity_cancelled) as quantity_ordered,
sum(customerorderpos.itemsubtotal) as item_subtotal,
sum(customerorderpos.pricechangetotal) as item_pricechangetotal,
sum(customerorderpos.itemtotal) as item_total,
sum(customerorderpos.purchase_price * (customerorderpos.quantity_ordered - customerorderpos.quantity_cancelled)) as item_purchasepricetotal,
sum(cart_discounttotal) as total_discount,
sum(customerorderpos.itemtotal) - sum(customerorderpos.purchase_price * (customerorderpos.quantity_ordered - customerorderpos.quantity_cancelled)) - sum(cart_discounttotal) as item_earningstotal,
sum(cart_total_shipping) as total_shipping,
sum(cart_total_tax) as total_tax,
sum(cart_total_complete) as total_complete
from customerorder inner join customerorderpos on customerorderpos.customerorderid = customerorder.customerorderid
where customerorder.status_cancelled = 0
group by day(from_unixtime(customerorder.datetime)) order by customerorder.datetime