誰かがここで支援とアドバイスを貸してくれることを願っています。私はかなり複雑な結果を得ようとしていますが、サブクエリ、ユニオン、または単に個別のクエリを使用して 1 つのクエリとして実行できるかどうか、事後に Excel にマージできるかどうかはわかりません。
次のテーブルを使用して、前任者のレガシー データベースを使用しています。 : In_stock (Y/N), id, form_id)
次のような最終結果を得ようとしています。
| SubmittedForms | Unsubmitted Forms | Sector | State |
|-----------------------------------------------------|
| 10 | 5 | Agr | UT |
| 0 | 7 | Chem | MT |
| 2 | 1 | Bio | OK |
| 13 | 0 | Chem | NM |
私が得ている主な問題は、送信されたフォームはそれ以上の引数を必要とせず、単純なカウントですが、送信されていないフォームは Inventory.in_stock='Y' に依存していることです。送信されたフォームに対する私のクエリは次のとおりです。
SELECT COUNT(Forms.id) AS Submitted, Business.sector, Business.state
FROM Forms
JOIN Business ON Forms.business_id=Business.id
WHERE Forms.submitted='Y'
GROUP BY Business.state, Business.sector
残念ながら、未提出のフォーム番号を正しく計算できないようです。そのセクターの in_stock が Y である行の総数を返すだけです。
Submitted と Unsubmitted に対して個別のクエリを実行する方が簡単な場合は、最終結果には問題ありませんが、in_stock に Y のフラグが立てられた Unsubmitted フォームの正しい数を取得するための助けが必要です。また、COUNT DISTINCT を使用しようとしましたが、うまくいきません。長く、10分後も実行されていました。単一のクエリ オプションで想定できるもう 1 つの問題は、送信済みフォームまたは未送信フォームのいずれかで 0/null 値が発生する可能性です。
どんな助けでも大歓迎です!