これを解決するために数時間を費やしてしまい、多くの欲求不満と結果が出ませんでした。私はこれに初心者ですが、喜んで学びます。私はSQLiteStudio特定の週のSQLサブクエリステータスが集計に追加されました
データを使用しています:
- 私はレンタルデータの価値は年を持つテーブルがあります。
- テナントを持っている顧客のためのエントリがあります(テナントが開始されたか、または年内に終了したため、52時間未満で表示される可能性があります)。
- 各週のデータを別のレポートからこのテーブルにインポートし、
- ステータスはCUR(現行)からTER(終了= 4週間通知)からFOR(旧式)に変更することができます
- 各顧客に固有のテナント参照番号(フィールド:TenancyRef )
私のクエリ:
だから、このクエリは、偉大な/正常に動作します:
SELECT TenancyRef,
PropertyType,
TenancyType,
ManagementArea,
count() AS NumberEntries,
Round(Sum(Payments), 2) AS TotalPaid,
Round(Sum(HBUCAmount), 2) AS TotalHB,
Round(Sum(DebitAmount), 2) AS DebitTotal,
Round(Round(Sum(DebitAmount), 2) - Round(Sum(HBUCAmount), 2), 2) AS mySubtraction
FROM PSEData15
WHERE PropertyType != "LOCK" AND
PropertyType != "GP"
GROUP BY TenancyRef
HAVING TotalPaid = 0 AND
DebitTotal > TotalHB
ORDER BY TenancyRef DESC
それは私にこれらの顧客は£0を支払っただけの下に900個の参照のリストを与えます。
私は別にこのクエリを実行する場合:
SELECT TenancyRef, Status, ClosingBal
FROM PSEData15
WHERE (ReportName = "PSE-W201552030416" OR ReportName = "PSE-F201552030416") AND
Status != "FOR" AND
PropertyType != "LOCK" AND
PropertyType != "GP" AND
ClosingBal > 0
それは、先週に私のすべての現在の顧客を与え、(それらの3667)彼らの期末残高
目的:
基本的にどのような私は最初のクエリに追加される終了残高とwk52ステータスを探しています。どんな助けでも大歓迎です。私は、サンプルデータおよび所望の結果を求めた
:事前に
EDIT1をお願いします。テーブルを簡素化することは、私のサンプルは次のようになります。
TenancyRef | Status | Payments | Closing Bal | ReportName
1 | CUR | 0.00 | 10.00 | 2015-Wk49
1 | CUR | 0.00 | 20.00 | 2015-Wk50
1 | CUR | 0.00 | 30.00 | 2015-Wk51
1 | CUR | 0.00 | 40.00 | 2015-Wk52
2 | CUR | 10.00 | 20.00 | 2015-Wk49
2 | CUR | 10.00 | 20.00 | 2015-Wk50
2 | TER | 10.00 | 20.00 | 2015-Wk51
2 | FOR | 10.00 | 20.00 | 2015-Wk52
3 | CUR | 10.00 | 20.00 | 2015-Wk49
3 | TER | 10.00 | 20.00 | 2015-Wk50
3 | FOR | 10.00 | 20.00 | 2015-Wk51
望ましい結果:
TenancyRef | Count | TotalPaid | Wk52_ClosingBal | Wk52_status
1 | 4 | 0.00 | 40.00 | CUR
2 | 4 | 40.00 | 20.00 | FOR
3 | 3 | 30.00 | 20.00 | FOR
から
CLに感謝します。私の質問がより明確になることを願っておられますように、私はこれを行っています! – Mark
誰もがWk52レポートステータスを持っていますか?あなたのサンプルでは、テナント#3はそうではありません。 –