2016-07-04 31 views
-1

1つのテーブルの2つの行の値を比較したい テーブルは次のとおりです。
私は1同じテーブルの2つの行を比較します

SKU   ASIN  Price  
CT0144  B013VNZNYU 20.99 
CT0144-F B013VNZNYU 17.64 
+1

インナーは異なるエイリアスとでテーブルを結合する、このようにしてみてみたレコードを見つけたいです魔法は完了 – Naranca

+1

MySql? Plsql?どのデータベースを使用していますか? –

+0

私は知っているが、私は2つのskuを比較する必要がありますonwは正常でもう1つは正常です+ ' - F –

答えて

1

DECLARE @table TABLE (
    SKU VARCHAR(50) 
    ,ASIN VARCHAR(50) 
    ,Price FLOAT 
    ) 

INSERT INTO @table 
VALUES (
    'CT0144' 
    ,'B013VNZNYU' 
    ,'20.99' 
    ) 
    ,(
    'CT0144-F' 
    ,'B013VNZNYU' 
    ,'17.64' 
    ) 
    ,(
    'CT0144' 
    ,'B013VNZNU' 
    ,'10.99' 
    ) 
    ,(
    'CT0144-F' 
    ,'B013VNZNU' 
    ,'18.64' 
    ) 

SELECT * 
FROM @table 

SELECT A.ASIN 
    ,A.FPrice 
    ,B.Normal 
FROM (
    SELECT ASIN 
     ,MAX(PRICE) AS FPrice 
    FROM @table t1 
    WHERE SKU LIKE '%F' 
    GROUP BY ASIN 
    ) A 
INNER JOIN (
    SELECT ASIN 
     ,MAX(PRICE) AS Normal 
    FROM @table t1 
    WHERE SKU NOT LIKE '%F' 
    GROUP BY ASIN 
    ) B ON A.ASIN = B.ASIN 
WHERE A.FPrice > B.Normal 
0

通常よりも大きい-F SKUは、この

select t1.SKU,t1.ASIN,t1.Price from table as t1 inner join 
(
select ASIN, max(price) as price from table group by ASIN 
) as t2 
on t1.ASIN=t2.ASIN and t1.price=t2.price 
where t1.SKU like '%-F' 
関連する問題