2
こんにちは、私はいくつかのジョインで選択し、すべての行を1つのテーブル(右ジョイン)に表示したい。 は、ここに私のクエリいくつかのジョインをテーブルSQL Serverで1つの右ジョインで使用する方法
MERGE #Players AS Target
USING (SELECT DT.[TimeId] AS [Selector],
[CurrencyId],
PT.Name [ProductType],
COUNT(*) FirstTimeDepositors,
PT.Id FirstDepositProductTypeId
FROM [WarehouseMgmt].[DimPlayer] DP
JOIN [WarehouseMgmt].[DimTimeZone] DT ON DP.[FirstDepositTimeId] = DT.TimeUTCId
RIGHT JOIN [WarehouseMgmt].[DimProductType] PT ON PT.Id = DP.FirstDepositProductTypeId
AND [FirstDepositTimeId] BETWEEN @DimStartDateUTC AND @DimEndDateUTC
AND DP.[IsInternalAccount] = 0
GROUP BY DT.[TimeId],[CurrencyId],PT.Name,PT.Id) AS Source
ON (Target.[Time] = Source.[Selector] AND Target.[CurrencyId] = Source.[CurrencyId] AND Target.[ProductType] = Source.[ProductType])
WHEN MATCHED THEN
UPDATE SET Target.[FirstTimeDepositorsCounts] = Source.[FirstTimeDepositors]
WHEN NOT MATCHED BY TARGET THEN
INSERT ([Time],[CurrencyId],[ProductType],[FirstTimeDepositorsCounts],[FirstDepositProductTypeId])
VALUES (Source.[Selector],Source.[CurrencyId],[ProductType],Source.[FirstTimeDepositors],Source.[FirstDepositProductTypeId]);
である。しかし、これは私のために正常に動作しない、プラス私はあなたが参加し、テーブルをフィルタリングする場合句は、それは右で可能かどう参加
? – sagi
誰が使用するのかわかりません:)すべてのテーブルを結合し、すべてのProductTypesをDimProductTypeテーブルから取得するソリューションが必要です。あなたが歓迎されているいくつかのより良い解決策を知っている場合:) – user2171512