SQL 쿼리를 수행하려고하지만 예상 한 결과를 얻을 수 없습니다. 나는 정말로 무엇이 잘못 될지 모른다.SQL Server에서 예상 쿼리를 가져올 수 없습니다.
나는 (product_variation_id, PRODUCT_ID, 설명, 성, 가격)
는 기본적으로,이 제품이 포함되어 포함 된 테이블 제품 (PRODUCT_ID, 제목) 및 기타 테이블 Product_Variation 있습니다. 각 제품에 대해 N 개의 유사 콘텐츠가 있어야합니다.
예를 들어
제품 : 설명 "T 셔츠"성 "남성"가격 "59.90"나는 무엇이 필요
이 제품 선택과 Product_Variation 보여주는 : 제목 Product_Variation "난 몰라" 가장 낮은 가격의 제품 만.
제품에 티셔츠, 자켓 또는 기타 유사 제품이있는 경우 신경 쓰지 않아도됩니다. 나는 가장 낮은 가격을 가진 변이를 얻을 필요가있다.
내 쿼리는 다음과 같습니다
SELECT b.product_id, b.title, MIN(b.price) as price, b.gender
FROM (
SELECT p.product_id, p.title, MIN(pv.price) AS price, pv.gender
FROM products p
join product_variation pv ON pv.product_id = p.product_id
GROUP BY p.product_id, p.title, pv.price, pv.gender
) b
GROUP BY b.product_id, b.title, b.price, b.gender
Pls는, 내 example in SQL Fiddle
감사를 참조하십시오! 당신은 SQL 2008을 사용하고 있기 때문에
'pv.price'로 그룹화하지 마십시오. 하위 쿼리로 충분합니다. [피들은 여기에 있습니다.] (http://sqlfiddle.com/#!6/7e8c2/4) – Kaf
@Kaf - 좋아요, 작동합니다. 그러나 질의 결과는 성별 여성에 대한 모든 결과를 보여주고 성별에 대한 모든 결과를 보여줍니다. 남성 예를 들어 제목 -1 남성 제목 -1 여성 - 제목 -2 남성 제목 -2 여성 ..... 등 –
모든 Title-1을 함께 묶는 ORDER 절을 추가하십시오. ORDER BY p.title, pv.gender, pv.price – taserian