我試圖找到我們最暢銷的產品,然後使用該信息來查找其他內容。但是,我們最近將信息移到了我們數據庫中的新表中。新表格有新的項目編號,但只有一些舊的原件。當我加入舊錶獲取所有內容時,他們會倍增很多,因爲新表的數據比舊數據多。重複行 - 加入列?
我真的很羅嗦,因此這裏混亂是一個例子:
ItemName ItemNo ItemNo2 Size Age Type Count Sales YearNew
Item1 AA123 AA123 ST NULL Accessories 1234 12334.56 2008
Item2 BB123 BB123 ST Adult Accessories 5643 98765.43 2006
Item3 CC123 CC123 ST NULL Accessories 1111 11111.11 2007
Item3b CC123 CC123 ST Adult Accessories 1111 11111.11 2007
Item4 DD123 DD123 L Kids Costumes 333 7891.12 2011
Item4 DD123 DD123 L Teen Costumes 333 7891.12 2011
(這些數字是由,很明顯)
注意,對於項目3和Item3b唯一的區別是ITEMNAME和年齡。其他一切都是一樣的。但是因爲這是不同的,我正在按照每個領域進行分組,所以它們將它們分成2個大部分重複的行。
有沒有一種方法可以加入ItemNo和ItemNo2列?或解決這個問題的另一種方法?
但也請注意,我有情況,每一列是相同的,除了類型或年齡。在這個例子中,除了年齡,DD123在每個區域都是相同的,這也導致它分成兩行。
其他時間,除了ItemName外,其他時間都是一樣的。它各不相同。
有人向我建議,我要求編程只是將他們遺漏回來的舊項目編號添加到新表格中。這是最好的方法,還是我能做的事情?
我有對數據庫的只讀訪問所以我不能自己做任何更改。
爲了好玩,這裏是我使用的時刻查詢:
select PM.ProductMasterName as ItemName,PM.ItemNumber as ItemNo,
op.ItemNumber_obsolete as ItemNo2,
OP.Size_obsolete as Size,Age.AgeSegment as Age,
PT.ProductTypeDescription as Type,PM.Price,
COUNT(PM.ItemNumber) as 'Count',
(PM.Price*COUNT(PM.ItemNumber)) as Sales,
YEAR(PS.DateCreated) as YearNew
from dbo.tblOrder O with (nolock)
left outer join dbo.tblOrderProduct OP with (nolock)
on O.OrderID=op.OrderID
left outer join dbo.tblProductSize PS
on OP.ItemNumber_obsolete=PS.ItemNumber_obsolete
and OP.Size_obsolete=PS.Size_obsolete
left outer join Product.ProductMaster PM with (nolock)
on PM.ItemNumber=OP.ItemNumber_obsolete
and PM.Price=OP.Price
left outer join Product.ProductType PT
on PM.ProductTypeID=PT.ProductTypeID
left outer join Product.AgeSegmentToProductMaster ASPM
on PM.ProductMasterID=ASPM.ProductMasterID
left outer join Product.AgeSegment Age
on ASPM.AgeSegmentID=Age.AgeSegmentID
where O.OrderDate >= '2012-01-01'
and O.OrderDate < '2013-01-01'
group by PM.ProductMasterName,PM.ItemNumber,op.ItemNumber_obsolete,
OP.Size_obsolete,PM.Price,Age.AgeSegment,
PT.ProductTypeDescription,YEAR(PS.DateCreated)
order by Sales desc
我希望你明白,如果一塊數據不同,它應該是結果集中的一個單獨的行,這就是SQL按設計工作的方式。你沒有記錄。 – HLGEM