0

これは私の価格表がどのように見えるかです

Product_id prod_upc    str_nbr  Price
prod110010 4122067755  12       1.22
prod110010 4122067755  21       2.88
prod110010 4122063030  21       3.88
prod110010 4122063030  12       2.88
prod110010 4122063031  12       2.88
prod110010 4122063031  21       4.88

解決する必要がある2つの要件があります

  1. ストア全体ですべての製品の最低価格の UPC を取得しますか? 上記のデータに基づいて、出力は次のようになります

    prod110010  4122067755  12      1.22
    
  2. 各ストアのすべての製品の最低価格の upc を取得しますか? 上記のデータに基づいて、出力は次のようになります

    prod110010  4122067755  12      1.22
    prod110010  4122067755  21      2.88
    

内部クエリを何度も試しましたが、何も機能しませんでした。SQL の専門家がいる場合は、助けてください。

ストア固有のクエリは次のとおりです。

SELECT DISTINCT t.product_id, t.prod_upc,t.str_nbr, t.MINVALUE 
  FROM ( SELECT dpc.product_id, hpd.prod_upc, str_nbr
              , MIN(hpd.curr_retl_prc) OVER 
                 (PARTITION BY dpc.product_id) MINVALUE 
           FROM prc_dta ) AS T

グローバルの場合:

SELECT DISTINCT t.product_id, t.prod_upc, t.str_nbr, t.MINVALUE 
  FROM ( SELECT dpc.product_id, hpd.prod_upc, hpd.str_nbr
              , MIN(hpd.curr_retl_prc) OVER 
                    (PARTITION BY dpc.product_id,hpd.str_nbr) MINVALUE 
           FROM prc_dta) AS T
4

2 に答える 2

0
This query to get min price upc row : 

    select top 1 Product_id,prod_upc,str_nbr,Price from tbl where prod_upc=(select top 1 min(prod_upc) from tb1 ) order by Price asc

This query get all row of min price of upc:

select Product_id,prod_upc,str_nbr,Price from tbl where prod_upc=(select top 1 min(prod_upc) from tb1 ) order by Price asc
于 2012-09-15T07:26:53.223 に答える
0
WITH ranked (Product_id, prod_upc, str_nbr, Price, pricerank)
AS ( SELECT Product_id, prod_upc, str_nbr, Price,
    ROW_NUMBER() OVER ( PARTITION BY str_nbr ORDER BY Price ) AS pricerank
    FROM tbl
   )
SELECT Product_id, prod_upc, str_nbr, Price FROM ranked WHERE pricerank = 1
于 2012-09-15T07:29:59.600 に答える