我有一个零售软件的价格表,其中包含一个商品的UPC,一个属性代码(即“REGULAR_PRICE,PROMO_PRICE”)和一个价格。
示例表:
400000320243 REGULAR_PRICE 80
400000320243 PROMO_PRICE 80
400000320250 REGULAR_PRICE 50
400000320250 PROMO_PRICE 40
我正在尝试编写查询以查找任何UPC的PROMO_PRICE = REGULAR_PRICE,并输出保持该条件的UPC列表。
我不知道如何用SQL编写它。我正在使用SQL Server 2008 R2。
尝试的伪代码:
for each upc:
if upc.regular_price = upc.promo_price:
print upc
最佳答案
您可以通过多种方式做到这一点。一种方法是创建两组,一组具有upcs和常规价格,另一组具有upcs和促销价格,并加入这两组,如下所示:
select r.upc, r.price from
(select upc, price from t where propertyCode = 'regular_price') r inner join
(select upc, price from t where propertyCode = 'promo_price') p on
r.upc = p.upc and
r.price = p.price
您可以在sqlfiddle上尝试。
关于sql - SQL-比较查询中的多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14838420/