2012-09-09 2 views
0

가격 및 마스터 카테고리에 대한 열이있는 제품 테이블이 있습니다.제품 테이블에서 5 가지 가격 범위의 범위를 만드는 방법

주어진 카테고리 (또는 모든 카테고리)에 대한 가격 범위를 찾으려면 DB를 쿼리하고 싶습니다. 이 가격 범위는 적절한 가격대 (예 : £ 0- £ 5 £ 5- £ 10 등)로 나뉩니다.

이 작업을 수행하는 방법에 관해서는 머리를 쓸 수 없습니다. PHP로이 모든 작업을 수행해야합니까?

편집 : 내가 각 제품의 대략 동일한 번호로 아마 4 가격 범위를 표시 할 수 있습니다, 그래서 어떤 카테고리가 나열되고 결국 싶습니다이라도 그것에 대해 생각 명확히했다 데. 그것은 당신의 테이블 구조에 대한

+0

의 독특한 설정이 있습니까 특정 가격? –

답변

2

카테고리 당 최소 및 최대 가격을 위해 :

SELECT category, min(price) as min_price, max(price) as max_price 
from Products 
Group BY category 

SELECT 
    category, 
    SUM(CASE WHEN price BETWEEN 0 AND 5 THEN 1 ELSE 0 END) as zero-five, 
    SUM(CASE WHEN price BETWEEN 5 AND 10 THEN 1 ELSE 0 END) as five-ten, 
    ... 
from Products 
Group BY category 

수익률과 같은 일을 할

Category zero-five five-ten 
Cat1  2   4 
Cat2  3   6 

또는

SELECT category, range, count(*) 
FROM (
    SELECT 
     category, 
     CASE WHEN price BETWEEN 0 to 5 THEN '0-5' 
      WHEN price BETWEEN 5 to 10 THEN '5-10' 
      ... 
      ELSE '10+' 
     END as range 
    FROM products 
) 
group by category, range 

수율 수있는 직접 쿼리의 범위에 대한

Category range count 
Cat1  0-5 2  
Cat1  5-10 4  
Cat1  10+ 0 
Cat2  0-5 3  
Cat2  5-10 6  
Cat2  10+ 0 
+0

문제가 해결되었습니다. 감사합니다. –

0

확실하지 :(주위에 내 미약 한 마음을 얻을 수 있지만,이 제품 테이블에 고유 한 가격을 사로 잡고 : 아마 PHP를 사용하기 시작 것, 여기에서

select distinct price from products order by price desc; 

. 정확히 어떻게 당신은 그룹으로이 가격을 파괴하는 것을 선호

+0

나는 각 가격 범위에서 대략 같은 양의 제품을 5 개 정도 또는 그 정도의 가격대로 나눌 것을 계획하고 있었다. –

1
$sql = " 
SELECT P1.category as category, min(P1.price) as min_price, max(P2.price) as max_price 
FROM Products P1 join Products P2 on P1.category=P2.category 
Group BY category 
"; 
<table width="300" border="1"> 
<tr> 
<td><b>category</b></td> 
<td><b>min_price</b></td> 
<td><b>max_price</b></td> 
</tr> 
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) 
{ 
//print data 
?> 
<tr> 
<td><? echo $row['category']; ?></td> 
<td><? echo $row['min_price']; ?></td> 
<td><? echo $row['max_price']; ?></td> 
</tr> 
<? 
} 
?> 
+0

@crazy Sarah, 우리가 더 도움을 줄 수있는 테이블 구조를 게시하십시오. – mongotop

+0

결합이 중복됩니다. –

+0

안녕하세요, 여기 테이블은 zencart입니다. http://www.zen-cart.com/wiki/index.php/Developers_-_Database_Schema –

관련 문제