これは私の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句に条件を追加することを提案しないでください。ここでは、ストア<> 0です。私の最初のクエリ結果のために結果が表示されます。すべてのIDが2回あります。 おかげ を更新し
は、私はあなたが
PIVOT
を使用して考えがあります目的
...参加します。[ dbo]。[ItemRelationQty] **。これを集約する方法を決定する必要があります。たとえば、IDで集計(SUM)を試みることができます – jean