2つの子テーブルの集計を比較する条件に基づくリターンレコード

カーン

多くの支払いがあり、多くの請求書明細がある請求書テーブルがあります。請求書レコードの合計は、請求書明細(数量*価格)から算出されます。

未払いの残高のある請求書を返すクエリを作成しようとしています。

SELECT inv.id, MAX(inv.invoice_total) as "InvoiceTotal", SUM(pt.amount) AS "TotalPayments" FROM (
  SELECT 
        i.id,
        SUM( ili.price * ili.quantity ) as "invoice_total"
     FROM
        invoices i
        JOIN invoice_line_items ili
          on i.id = ili.invoice_id
  GROUP BY i.id
  ) inv
LEFT JOIN payment_transactions pt
ON pt.invoice_id = inv.id
GROUP BY inv.id
ORDER BY inv.id DESC

最後の部分は、支払い合計が請求書の合計より少ないレコードのみを返すHAVINGを追加することでしたが、機能していません。

どうすればこれを達成できますか?私よりも簡単なアプローチはありますか?

ゴードン・リノフ

これは機能するはずです:

SELECT inv.id, MAX(inv.invoice_total) as InvoiceTotal, SUM(pt.amount) AS "TotalPayments"
FROM (SELECT i.id, SUM( ili.price * ili.quantity ) as invoice_total
      FROM invoices i JOIN 
           invoice_line_items ili
           ON i.id = ili.invoice_id
      GROUP BY i.id
     ) inv LEFT JOIN
     payment_transactions pt
     ON pt.invoice_id = inv.id
GROUP BY inv.id
HAVING COALESCE(SUM(pt.amount), 0) < MAX(inv.invoice_total)
ORDER BY inv.id DESC;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

あるテーブルのレコードを他のテーブルのレコードに基づいてフィルタリングする

分類Dev

子ノードの2つのサブセットに適用される2つの集計関数に基づいてノードをフィルタリングします

分類Dev

条件に基づいて1つのテーブルから別のテーブルにレコードを挿入するPSQLクエリ

分類Dev

Oracle SQL:条件に基づいて特定のレコードをあるテーブルから別のフィルタリング行に転送します

分類Dev

条件に基づくOracleテーブルのランダムレコード

分類Dev

2つのテーブルを比較し、IDに基づいてフィルタリングします

分類Dev

2つのテーブルを結合するRubyon Rails ActiveRecordクエリと条件に基づくクエリ

分類Dev

条件に基づいて2つのマスターテーブルと子テーブルのデータを表示する方法

分類Dev

別のテーブルの2つの日付フィールドに基づいて1つのテーブルのレコード数を取得する方法

分類Dev

最初のテーブルレコードに基づいて2つのテーブルを結合します

分類Dev

特定の条件に基づいてレコードをフィルタリングするためのクエリ

分類Dev

いくつかの基準に基づいて2つのテーブルをマージするクエリ

分類Dev

2つの異なるテーブルを比較し、条件に基づいて値を選択します

分類Dev

MySql'Insert Ignore into 'クエリを使用して、別のテーブルのいくつかの値に基づいてレコードを挿入する方法

分類Dev

子テーブルの1つのフィールドの値に基づいて合計をカウントする5つのサブクエリを1つの更新にグループ化するにはどうすればよいですか?

分類Dev

BigQuery:フェデレーションGoogleスプレッドシートに基づく2つの異なるテーブルを結合する

分類Dev

行のキーに基づいてテーブルのレコードを合計する

分類Dev

結合条件に基づいてデータをフィルタリングせずに2つのテーブルを結合する

分類Dev

列の条件に基づいて最新のレコードをフィルタリングする

分類Dev

別のテーブルの値の存在に基づいて集計関数内のレコードを除外する

分類Dev

2つの条件に基づいてデータフレームのサブセットをループする

分類Dev

2つのテーブルの列の比較に基づいてテーブルの列を更新する(SQL)

分類Dev

値に基づく2つのテーブル列の合計

分類Dev

ハイブの2列に基づくテーブルから最新のレコードを取得します

分類Dev

2つのテーブルに基づくHiveの条件

分類Dev

詳細テーブルの一致するレコードに基づいてマスターテーブルのレコードをカウントするための1つのSQLステートメント?

分類Dev

文字列コンテインメントを介して2つの列に基づく2つのデータフレームをマージする方法

分類Dev

2つの変数に基づいて比較するJavaでコンパレータを定義する方法

分類Dev

条件に基づいて別のテーブルから特定のレコードを選択する

Related 関連記事

  1. 1

    あるテーブルのレコードを他のテーブルのレコードに基づいてフィルタリングする

  2. 2

    子ノードの2つのサブセットに適用される2つの集計関数に基づいてノードをフィルタリングします

  3. 3

    条件に基づいて1つのテーブルから別のテーブルにレコードを挿入するPSQLクエリ

  4. 4

    Oracle SQL:条件に基づいて特定のレコードをあるテーブルから別のフィルタリング行に転送します

  5. 5

    条件に基づくOracleテーブルのランダムレコード

  6. 6

    2つのテーブルを比較し、IDに基づいてフィルタリングします

  7. 7

    2つのテーブルを結合するRubyon Rails ActiveRecordクエリと条件に基づくクエリ

  8. 8

    条件に基づいて2つのマスターテーブルと子テーブルのデータを表示する方法

  9. 9

    別のテーブルの2つの日付フィールドに基づいて1つのテーブルのレコード数を取得する方法

  10. 10

    最初のテーブルレコードに基づいて2つのテーブルを結合します

  11. 11

    特定の条件に基づいてレコードをフィルタリングするためのクエリ

  12. 12

    いくつかの基準に基づいて2つのテーブルをマージするクエリ

  13. 13

    2つの異なるテーブルを比較し、条件に基づいて値を選択します

  14. 14

    MySql'Insert Ignore into 'クエリを使用して、別のテーブルのいくつかの値に基づいてレコードを挿入する方法

  15. 15

    子テーブルの1つのフィールドの値に基づいて合計をカウントする5つのサブクエリを1つの更新にグループ化するにはどうすればよいですか?

  16. 16

    BigQuery:フェデレーションGoogleスプレッドシートに基づく2つの異なるテーブルを結合する

  17. 17

    行のキーに基づいてテーブルのレコードを合計する

  18. 18

    結合条件に基づいてデータをフィルタリングせずに2つのテーブルを結合する

  19. 19

    列の条件に基づいて最新のレコードをフィルタリングする

  20. 20

    別のテーブルの値の存在に基づいて集計関数内のレコードを除外する

  21. 21

    2つの条件に基づいてデータフレームのサブセットをループする

  22. 22

    2つのテーブルの列の比較に基づいてテーブルの列を更新する(SQL)

  23. 23

    値に基づく2つのテーブル列の合計

  24. 24

    ハイブの2列に基づくテーブルから最新のレコードを取得します

  25. 25

    2つのテーブルに基づくHiveの条件

  26. 26

    詳細テーブルの一致するレコードに基づいてマスターテーブルのレコードをカウントするための1つのSQLステートメント?

  27. 27

    文字列コンテインメントを介して2つの列に基づく2つのデータフレームをマージする方法

  28. 28

    2つの変数に基づいて比較するJavaでコンパレータを定義する方法

  29. 29

    条件に基づいて別のテーブルから特定のレコードを選択する

ホットタグ

アーカイブ