2012-09-15 2 views
0

이것은 내가 가장 받기가격 UPC 값은

  1. 를 해결하기 위해 두 가지 요구 사항이

    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 
    

    처럼 내 가격 테이블이 보이는 무엇이다 모든 매장의 모든 제품에 대해 가격이 책정 된 UPC? 위의 데이터를 기준으로 출력이

    prod110010 4122067755 12  1.22 
    
  2. 는 각 점포의 모든 제품에 대한 최소 가격 UPC를 취득해야 하는가? 위의 데이터를 기준으로 출력은 내가 5 월 내부 쿼리를 시도했지만 아무것도 도와주세요 여기에, 어떤 SQL 전문가를 일하지

    prod110010 4122067755 12  1.22 
    prod110010 4122067755 21  2.88 
    

해야한다. 매장 별에 대한

내 쿼리는 다음과 같습니다

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 
+1

당신이 시도 코드를 표시하고 실패한 방법에 대해 설명 바랍니다. – Mat

+0

게시물을 편집하여 해당 정보를 추가하십시오 (서식을 잘 살펴보십시오). 태그 바로 아래에 '수정'링크가 있습니다. – Mat

+0

** 질문 **을 수정하고 쿼리를 추가하십시오. – Mat

답변

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 
+0

나는 어디 에서이 조건을 이해할 수 없습니다 prod_upc = (tb1에서 _upc (prod) _upc 선택 내 테이블에 upc 열입니다 – user1673029

+0

MIN (prod_upc)와 관련된 UPC를 반환해야 할 때 하위 쿼리가 잘못 MIN (가격) –

+0

나는 UPC 값의 최소값을 가져오고 싶지만 UPC 값의 최소값을 가져 오지 않으려 고합니다. 그러나 내부 쿼리는 다른 값을 보입니다 – user1673029

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 
+0

이것은 모든 제품 가격의 최소값이 일치하는 행을 제공합니다. 테이블의 가격 값은 1.2입니다. 이것은 가격 값이 1.2 인 행을 제공합니다 ....하지만 내 intetion은 모든 제품과 모든 상점의 모든 제품에 대해 최소 가격 행을 얻는 것입니다. – user1673029