インターンシップを開始したばかりで、いくつかの SQL を任されています。少しトリッキーです。どんな助けにも感謝します。ありがとう!
タスク:
「次のアラートを作成することは可能でしょうか。翌月が期限の未処理の販売注文が未処理の販売請求書と結合 (追加) されたときに、与信限度額を超えたすべての顧客を表示してください。」
私の提案したロジック:
最初にやりたいことは、各顧客 (SALES テーブル内) について、翌月のすべての販売注文を合計することです。
次に、各顧客のすべての未処理の請求書を合計します。つまり、各顧客が負っている合計金額を (INVOICES テーブルで) 計算します。
次に、対応する customer_id によって、1 と 2 の結果を一緒に追加します
次に、上記 3 の計算を比較して、各顧客の与信限度額よりも大きいかどうかを確認します。
3 の合計が与信限度を超える場合、これらの会社のみが生成されたテーブルに表示されます。結果のテーブルの理想的な形式は次のとおりです。
Cust_ID|Name|Sum_sales_orders (1.above)|Sum_open_invoices (2.above)| Total_orders&invoices
----------------------------------------------------------------------------
1 | A | 25000 | 333 | 25333
| | | |
私がこれまでに持っているコードは
SELECT arc.company, arc.credit_limit,
sum (ard.unit_price * ard.invoice_qty) as open_invoice_total,
sum (od.total_qty_ord * od.unit_price) as open_orders_total
FROM iqms.arprepost_detail ard, iqms.arprepost arp, iqms.arcusto arc, iqms.ord_detail od, iqms.orders o
WHERE ard.arprepost_id = arp.id
and arc.id = o.arcusto_id and o.id = od.orders_id
and arp.arcusto_id = arc.id
GROUP BY arc.company, arc.credit_limit
これは sum () 関数で正しい合計を計算していると思いますか? または私は間違っていますか?open_invoice_total と open_orders_total を追加するにはどうすればよいですか? 次に、それらを credit_limit と比較しますか?
私がやろうとしていることを皆さんが理解してくれることを願っています。事前に助けてくれてありがとう!:)