Вот мой запрос и результат sql. Я получил результат, которого я ожидаю. Но это добавляет дополнительные строки в мой результат.Как избежать дублирования строк в моем сценарии SQL Server?
Мой запрос
Declare @store1001 varchar(10)='1001'
Declare @storeAll varchar(10)='StoreAll'
select ID,StoreID,TotalQtyParent into #tempQuantity
From
(
select ID,@store1001 StoreID,Sum([TotalQtyParent]) TotalQtyParent
FROM [HQMatajer].[dbo].[ItemRelationQty]
where StoreID='1001' and TotalQtyParent is not null
group by ID
Union
select ID,@storeAll StoreID,sum([TotalQtyParent]) TotalQtyParent
FROM [HQMatajer].[dbo].[ItemRelationQty]
where StoreID<>'1001' and TotalQtyParent is not null
group by ID
) totalquantity
результаты запроса
select TotalQty.ID, item.ItemLookupCode,item.Description,
(
case when TotalQty.StoreID = '1001' then TotalQty.TotalQtyParent
else 0 end
) WHS,
(
case when TotalQty1.StoreID = 'StoreAll' then TotalQty1.TotalQtyParent
else 0 end
) Store
FROM
#tempQuantity TotalQty
INNER JOIN #tempQuantity TotalQty1 on TotalQty.ID=TotalQty1.ID
LEFT JOIN HQMatajer.dbo.Item item on item.id=TotalQty.ID
order by WHS desc,Store desc
Окончательный выход
вы можете увидеть каждую вторую запись ID и значение магазина равно нулю (0). Я не хочу показывать эту строку.
Пожалуйста, не предлагайте мне добавить условие в where where where store <> 0. Это показывает результат из-за моего первого результата запроса. Там каждый идентификатор доступен два раза. Благодаря
ОБНОВЛЕНО я удалил некоторые столбцы из моего вывода запроса к пониманию цели
Это не ясно, что вы хотите, потому что ваш явно получил два ** StoreID ** для каждого ** ID ** в ** [HQMatajer]. [ DBO]. [ItemRelationQty] **. Вы должны решить, как объединить/объединить это. Например, вы можете попробовать агрегат (СУММ) по ID – jean