CTE を使用して日付の範囲を生成する次の LOJ クエリを使用しています。
Declare @inquiryStartDate DateTime;
Declare @inquiryEndDate DateTime;
Declare @inquiryMortgageNumber nvarchar(50);
SET @inquiryStartDate = '2013-07-01';
SET @inquiryEndDate = '2013-07-31';
SET @inquiryMortgageNumber = '12345678';
With DateRange As (
SELECT ID, Date
FROM d_Dates
WHERE (Date BETWEEN @inquiryStartDate AND @inquiryEndDate)
)
Select DateRange.ID, DateRange.Date,f_MortgageSnapshots.MortgageNumber, f_MortgageSnapshots.Investor_ID
From DateRange
LEFT OUTER JOIN f_MortgageSnapshots On DateRange.ID = f_MortgageSnapshots.SnapshotDate_ID
WHERE f_MortgageSnapshots.MortgageNumber = @inquiryMortgageNumber;
そして、私はこれを得ています:
しかし、私はこれが欲しい:
私は何を間違っていますか?
f_MortgageSnapshots テーブルには、住宅ローン 12345678 の行が 2 つだけあります。
ここで解決!
@inquiryStartDate DateTime を宣言します。@inquiryEndDate DateTime を宣言します。@inquiryMortgageNumber nvarchar(50); を宣言します。
SET @inquiryStartDate = '2013-07-01'; SET @inquiryEndDate = '2013-07-31'; SET @お問い合わせ住宅番号 = '7078575';
With DateRange As (
SELECT ID, d_Dates.Date
FROM d_Dates
WHERE (d_Dates.Date BETWEEN @inquiryStartDate AND @inquiryEndDate)
)
Select DateRange.ID, DateRange.Date,f_MortgageSnapshots.MortgageNumber, f_MortgageSnapshots.Investor_ID
From DateRange Left Join f_MortgageSnapshots
On DateRange.ID = f_MortgageSnapshots.SnapshotDate_ID
And MortgageNumber = @inquiryMortgageNumber;