Я не совсем понимаю, как устранить декартовы результаты, которые я получаю в своем соединении. Я думал, что успешно создал подзапрос, но, видимо, нет. Я работаю с одним столом. Я пытаюсь создать столбец, который отражает номер предыдущего года на основе кода транзакции 50 и записывается в декабре.
К сожалению, когда у меня есть транзакция 50 в любой другой месяц, я Я получаю декартово результат 50.
Я думал, что декартово значение было результатом нескольких совпадений с моими критериями «Вкл», поэтому я действительно пытался ограничить это, как вы можете видеть. Это не сработало так, как я планировал.
Вот мой код - как мне удалить декартовы результаты?
SELECT DataList.[State]
,DataList.[Symbol]
,DataList.[ClaimNumber]
,DataList.[AgentState]
,DataList.[Agent]
,DataList.[Adjuster]
,DataList.[Transactions]
,DataList.[WrittenDate]
,DataList.[EffectiveDate]
,DataList.[LossDate]
,DataList.[ReportedDate]
,sum(DataList.[Amount]) as Amount
,sum(EOYResvs.[EOYRESVAmount]) as EOYResvAmount
,DataList.[MajorPeril]
,DataList.[Class]
,DataList.[AmountCover]
,DataList.[DedAmount]
,DataList.[DedType]
,DataList.[Cause]
,DataList.[LossType]
,DataList.[EarthquakeDedPerc]
,DataList.[WindHailDed]
,DataList.[Territory]
,DataList.[County]
,DataList.[LocationState]
,DataList.[Zip5]
,DataList.[AdjustIND]
,DataList.[ClaimCode]
,DataList.[FileNumber]
FROM
[Database].[dbo].[Info] DataList
LEFT JOIN
(SELECT
[State]
,[Symbol]
,[ClaimNumber]
,[AgentState]
,[Agent]
,[Adjuster]
,[Transactions]
,[WrittenDate]
,[EffectiveDate]
,[LossDate]
,[ReportedDate]
,[Amount] as EOYRESVAmount
,[MajorPeril]
,[Class]
,[AmountCover]
,[DedAmount]
,[DedType]
,[Cause]
,[LossType]
,[EarthquakeDedPerc]
,[WindHailDed]
,[Territory]
,[County]
,[LocationState]
,[Zip5]
,[AdjustIND]
,[ClaimCode]
,[FileNumber]
FROM
[Database].[dbo].[Info]
WHERE
DATEPART(MONTH, [WrittenDate]) = 12
AND [Transactions] = 50
GROUP BY
[State], [Symbol], [ClaimNumber],
[AgentState], [Agent], [Adjuster], [Transactions],
[WrittenDate], [EffectiveDate], [LossDate], [ReportedDate],
[Amount], [MajorPeril], [Class], [AmountCover], [DedAmount],
[DedType], [Cause], [LossType], [EarthquakeDedPerc],
[WindHailDed], [Territory], [County], [LocationState],
[Zip5], [AdjustIND], [ClaimCode], [FileNumber]) EOYResvs
ON datepart(Year, DataList.[WrittenDate]) - datepart(Year, EOYResvs.[WrittenDate]) = 1 AND
DataList.[State] = EOYResvs.[State] AND
DataList.[Symbol] = EOYResvs.[Symbol] AND
DataList.[ClaimNumber] = EOYResvs.[ClaimNumber] AND
DataList.[AgentState] = EOYResvs.[AgentState] AND
DataList.[Agent] = EOYResvs.[Agent] AND
DataList.[Adjuster] = EOYResvs.[Adjuster] AND
DataList.[Transactions] = EOYResvs.[Transactions] AND
DataList.[EffectiveDate] = EOYResvs.[EffectiveDate] AND
DataList.[LossDate] = EOYResvs.[LossDate] AND
DataList.[ReportedDate] = EOYResvs.[ReportedDate] AND
DataList.[MajorPeril] = EOYResvs.[MajorPeril] AND
DataList.[Class]=EOYResvs.[Class] and
DataList.[AmountCover]=EOYResvs.[AmountCover] and
DataList.[DedAmount]=EOYResvs.[DedAmount] and
DataList.[DedType]=EOYResvs.[DedType] and
DataList.[Cause]=EOYResvs.[Cause] and
DataList.[LossType]=EOYResvs.[LossType] and
DataList.[EarthquakeDedPerc]=EOYResvs.[EarthQuakeDedPerc] and
DataList.[WindHailDed]=EOYResvs.[WindHailDed] and
DataList.[Territory]=EOYResvs.[Territory] and
DataList.[County]=EOYResvs.[County] and
DataList.[LocationState]=EOYResvs.[LocationState] and
DataList.[Zip5]=EOYResvs.[Zip5] and
DataList.[FileNumber]=EOYResvs.[FileNumber]
Group By
DataList.[State]
,DataList.[Symbol]
,DataList.[ClaimNumber]
,DataList.[AgentState]
,DataList.[Agent]
,DataList.[Adjuster]
,DataList.[Transactions]
,DataList.[WrittenDate]
,DataList.[EffectiveDate]
,DataList.[LossDate]
,DataList.[ReportedDate]
,DataList.[MajorPeril]
,DataList.[Class]
,DataList.[AmountCover]
,DataList.[DedAmount]
,DataList.[DedType]
,DataList.[Cause]
,DataList.[LossType]
,DataList.[EarthquakeDedPerc]
,DataList.[WindHailDed]
,DataList.[Territory]
,DataList.[County]
,DataList.[LocationState]
,DataList.[Zip5]
,DataList.[AdjustIND]
,DataList.[ClaimCode]
,DataList.[FileNumber]
Order by DataList.[ClaimNumber], DataList.[WrittenDate]
Образец выходных данных
Вот образец данных , Этот вывод идеален, за исключением декартовых результатов в полях, где код транзакции равен 50. Суммы неверны, так как они были умножены на количество результатов из запроса EOYResvs
WrittenDate EffectiveDate LossDate ReportedDate Amount EOYResvAmount MajorPeril Class AmountInsurance DeductibleAmount DeductibleType Cause LossType EarthquakeDedPerc WindHailDeductible Territory County LocationState Zip5 AdjustIND ClaimCode PolicyNumber
24 A 15360 24 4244 9524 50 12/31/2018 10/5/2018 12/1/2018 12/10/2018 5000 NULL 4400 815622 0 250 0 0 9 0 250 283 87 24 63462 NULL NULL 522434
24 A 15360 24 4244 9524 50 1/31/2019 10/5/2018 12/1/2018 12/10/2018 5000 5000 4400 815622 0 250 0 0 9 0 250 283 87 24 63462 NULL NULL 522434
24 A 15360 24 4244 9524 50 2/28/2019 10/5/2018 12/1/2018 12/10/2018 5000 5000 4400 815622 0 250 0 0 9 0 250 283 87 24 63462 NULL NULL 522434
24 A 15360 24 4244 9524 50 3/31/2019 10/5/2018 12/1/2018 12/10/2018 5000 5000 4400 815622 0 250 0 0 9 0 250 283 87 24 63462 NULL NULL 522434
24 A 15360 24 4244 9524 51 4/25/2019 10/5/2018 12/1/2018 12/10/2018 1432.38 NULL 4400 815622 0 250 0 0 9 0 250 283 87 24 63462 NULL NULL 522434
24 PA 15361 24 1338 9473 55 12/11/2018 8/9/2018 12/6/2018 12/10/2018 5 NULL 2900 786111 0 500 0 0 20 0 500 104 58 24 64658 P NULL 125425
24 PA 15361 24 1338 9473 55 12/13/2018 8/9/2018 12/6/2018 12/10/2018 162.5 NULL 400 786111 0 0 0 0 3 0 0 104 58 24 64658 A NULL 125425
24 PA 15361 24 1338 9473 51 12/17/2018 8/9/2018 12/6/2018 12/10/2018 832.94 NULL 400 786111 0 0 0 0 3 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 55 12/21/2018 8/9/2018 12/6/2018 12/10/2018 162.5 NULL 5000 786111 0 0 0 0 20 0 0 104 58 24 64658 A NULL 125425
24 PA 15361 24 1338 9473 55 12/26/2018 8/9/2018 12/6/2018 12/10/2018 162.5 NULL 2900 786111 0 500 0 0 20 0 500 104 58 24 64658 A NULL 125425
24 PA 15361 24 1338 9473 50 12/31/2018 8/9/2018 12/6/2018 12/10/2018 12000 NULL 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 55 1/8/2019 8/9/2018 12/6/2018 12/10/2018 -162.5 NULL 400 786111 0 0 0 0 3 0 0 104 58 24 64658 A NULL 125425
24 PA 15361 24 1338 9473 55 1/9/2019 8/9/2018 12/6/2018 12/10/2018 605.55 NULL 400 786111 0 0 0 0 3 0 0 104 58 24 64658 A NULL 125425
24 PA 15361 24 1338 9473 50 1/31/2019 8/9/2018 12/6/2018 12/10/2018 948 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 2/28/2019 8/9/2018 12/6/2018 12/10/2018 948 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 3/31/2019 8/9/2018 12/6/2018 12/10/2018 948 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 4/30/2019 8/9/2018 12/6/2018 12/10/2018 948 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 55 5/3/2019 8/9/2018 12/6/2018 12/10/2018 12.6 NULL 400 786111 0 0 0 0 3 0 0 104 58 24 64658 A NULL 125425
24 PA 15361 24 1338 9473 50 5/31/2019 8/9/2018 12/6/2018 12/10/2018 52500 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 6/30/2019 8/9/2018 12/6/2018 12/10/2018 52500 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 7/31/2019 8/9/2018 12/6/2018 12/10/2018 52500 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 8/31/2019 8/9/2018 12/6/2018 12/10/2018 1548 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 9/30/2019 8/9/2018 12/6/2018 12/10/2018 1548 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 10/31/2019 8/9/2018 12/6/2018 12/10/2018 1548 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 50 11/30/2019 8/9/2018 12/6/2018 12/10/2018 1548 12000 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 51 12/5/2019 8/9/2018 12/6/2018 12/10/2018 932 NULL 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 PA 15361 24 1338 9473 51 12/10/2019 8/9/2018 12/6/2018 12/10/2018 616 NULL 100 786111 0 0 0 0 1 0 0 104 58 24 64658 NULL NULL 125425
24 A 15362 24 4244 9524 50 12/31/2018 10/5/2018 12/1/2018 12/10/2018 5000 NULL 4400 783722 0 250 0 0 9 0 250 283 87 24 63462 NULL NULL 522434
24 A 15362 24 4244 9524 51 1/24/2019 10/5/2018 12/1/2018 12/10/2018 1851.34 NULL 4400 783722 0 250 0 0 9 0 250 283 87 24 63462 NULL NULL 522434
24 PA 15363 24 1361 9519 51 12/11/2018 9/1/2018 11/29/2018 12/10/2018 1309.5 NULL 2900 783223 0 500 0 0 20 0 500 245 10 24 65203 NULL NULL 107908
24 PA 15363 24 1361 9519 51 12/17/2018 9/1/2018 11/29/2018 12/10/2018 152.69 NULL 2900 783223 0 500 0 0 20 0 500 245 10 24 65203 NULL NULL 107908
24 PA 15364 24 3359 9431 55 12/14/2018 9/26/2018 12/7/2018 12/10/2018 177 NULL 4800 700720 0 500 0 0 9 0 500 290 42 24 64740 A NULL 117274
24 PA 15364 24 3359 9431 51 12/27/2018 9/26/2018 12/7/2018 12/10/2018 4972.52 NULL 4800 700720 0 500 0 0 9 0 500 290 42 24 64740 NULL NULL 117274
24 PA 15364 24 3359 9431 52 2/11/2019 9/26/2018 12/7/2018 12/10/2018 1324 NULL 4800 700720 0 500 0 0 9 0 500 290 42 24 64740 NULL NULL 117274
```