我不是一个SQL的家伙,我用它在过去,很少有一个问题,不能由谷歌解决...但是这次我需要问社区。每个产品返回一个SQL行与价格和最新日期
我有一个名为“交易”有数据这样的表的数据库:
ProdNo | Price | TransactionDate | PurchasedBy | etc.....
----------------------------------------------------------
3STRFLEX | 13.02 | 20162911 | AWC | .....
3STRFLEX | 15.02 | 20162011 | DWC | .....
3STRFLEX | 15.02 | 20160101 | AWC | .....
AFTV2 | 35.49 | 20162708 | AWC | .....
AFTV2 | 29.99 | 20160106 | DWC | .....
AFTV2 | 29.99 | 20160205 | AWC | .....
所需的输出是:
ProdNo | Price | TransactionDate
-----------------------------------
3STRFLEX | 13.02 | 20162911
AFTV2 | 35.49 | 20162708
我已经尝试了写这个我自己和我结束与SQL是这样的:
select t.ProdNo, t.TransactionDate as 'LastPurchaseDate', t.Price
from Transactions t
inner join (
select ProdNo, max(TransactionDate) as 'LastPurchaseDate'
from Transactions
WHERE Price > 0
group by ProdNo
) tm on t.ProdNo = tm.ProdNo and LastPurchaseDate = tm.LastPurchaseDate
但是在我的数据集中这返回(减少),其中显示多每个产品
ProdNo | LastPurchaseDate | Price
3STRFLX | 20120924 | 0.000000
3STRFLX | 20120924 | 22.000000
3STRFLX | 20150623 | 0.000000
3STRFLX | 20150623 | 1.220000
3STRFLX | 20150623 | 1.222197
行,以便确认:我想每个产品1行中,无论价格是购买最新的日期,但我需要在返回的数据中的价格。
感谢
这个问题接受了下来投票。但没有评论,OP没有办法解决/解决这个问题。这也使得很难辩论这一点。我看不出有什么问题。但是,也许我会同意一个评论......按照我的观点,我已经提出了包括样本数据,预期产出,原始努力和对问题的明确描述。 –
@ destination-data谢谢。我也没有看到这个问题,也许我错过了一些规则或东西 –