私はこれらの2つのテーブルを持っています:2つのテーブルのSQL合計
私は割引テーブルで支払いテーブルに参加する必要があります。割引テーブルには支払日がないため、期待される出力は不可能と思われます。私は、私は両方のテーブルに共通の列がPERSON_IDさ見ての通り、あなたがそれに参加しようとすることができますnet_amountに
payment table:
id | net_amount | payment_dt | person_id
1001 | 2765.36 | 2016-05-28 | 372
1002 | 2474.76 | 2016-05-29 | 372
1003 | 22694.25 | 2016-05-29 | 384
1004 | 1911.92 | 2016-05-29 | 384
discounts table:
id | person_id | gross_amount | sc_discount | other_discount_amount | other_discount_type
1 | 372 | 3566.7 | 713.34 | 88.00 | MISC
2 | 372 | 3202.2 | 640.44 | 87.00 | PAT
3 | 384 | 3566.7 | 713.34 | 285.34 | MISC
4 | 384 | 27953.10 | 5590.62 | 2236.25 | PAT
5 | 384 | 2655.45 | 531.09 | 212.44 | MISC
*1 - payment_dt is 2016-05-28
expected output: (where payment_dt=2016-05-29)
total_gross_amount | total_sc_discount | total_misc_discount | total_pat_discount | total_net_amount
37,377.45 | 7475.49 | 497.78 | 2,323.25 | 27,080.93
2つのテーブルのレコード間に論理的なリンクがない場合は、結果を得ることができません。あなたは毎日がダイアルテーブルのレコードが1つしかなく、今日は継続しているということをgurennteeが知っているならば、今日の割引は昨日の最高IDです。higestidから1を引いたものです。ケースが特定であり、非常に危険な状況にある場合などです。 – SMW
あなたのスキーマをもう少し説明できますか? Q1:支払いテーブルの「id」が繰り返し表示されるのはなぜですか? Q2:なぜ4つの支払いエントリがありますが、5つの割引エントリがあるのですか?それは1-1マッピングですか? Q3:net_amount = gross_amountですか?sc_discount - other_discount_amountですか? – greperror
***これらの2つのテーブルの間の関係は***かもしれません。割引1は、支払いテーブルの最初の行に一致する '3566.70 - 713.34 - 88.00 = 2765.36'を持ちます。ディスカウント2とディスカウント5で同じことができます。ただしディスカウント3には、一致する支払い行がありません。割引4 *が最大の支払いに関連して表示されますが、数字は加算されません。あなたは、割引への支払いや、少なくとも重要な分野への支払いをリンクする*テーブル全体(またはテーブル)*が不足しているように見えます。 – MatBailie