2013-10-08 2 views
0

나는이 세 가지 쿼리를 하나씩 결합해야합니다. 난 그냥 가까운 올바른 모든 데이터를 하나의 큰 열을 만드는 UNION을 사용했다세 가지 MySQL 데이터 쿼리를 여러 열이 포함 된 하나의 쿼리로 결합하려면 어떻게합니까?

while ($row = mysql_fetch_assoc($result)){ 

echo "<TABLE id='display'>"; 
echo "<td><b>Data Usage This Period: ". ROUND ($row["value_sum"],2) . "MB</b></td> "; 
echo "<td><b>Data Plan: ". $row["currentplan"] . "</b></td> "; 
echo "<td><b>Phone Number: ". $row["phonenumber"] . "</b></td> "; 
echo "</TABLE>"; 

} 

,하지만 난 모두에게 필요합니다

$sql = "SELECT SUM(datamb) AS value_sum FROM maindata GROUP BY phonenumber"; 



$sql1 = "select dataplan as currentplan from maindata GROUP BY phonenumber"; 



$sql2 = "SELECT DISTINCT phonenumber AS value_sum1 FROM maindata"; 

그래서 나는 다음과 같은 세 개의 열에서 표시 할 수 하나의 표에 세 개의 열로 표시하십시오. 어떤 생각을 해줘서 고맙겠습니다. 이미 완료 했으니 까.

+0

'을 선택 dataplan, PHONENUMBER, 합 (datamb) sum_datamb로 maindata 그룹에서 dataplan에 의해

http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html

쿼리는 불법 그룹화와 것 , 데이터 번호순으로 phonenumber 순서, phonenumber' ....? –

+1

$ sql1의 잘못된 그룹 http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html – AdrianBR

+0

문제를 설명하고 달성하고자하는 것을 언급 해 주시겠습니까? 테이블 세부 정보를 제공합니다. –

답변

2

GROUP BY 키워드를 사용하여 나머지 값에 대해 합계 레코드를 만들고 합계를 계산하십시오.

SELECT phonenumber, 
     dataplan AS currentplan, 
     SUM(datamb) AS value_sum 
FROM  maindata 
GROUP BY phonenumber, dataplan; 

이 쿼리는 당신에게 전화 번호와 데이터 계획의 독특한 조합을 제공하며, 이러한 별개의 그룹 내에서 datamb 필드를 요약합니다. 이것은 이런 종류의 계산에 매우 유용한 GROUP BY 키워드를 학습하는 훌륭한 연습입니다.

편집 :DISTINCT이 표시되면 해당 필드가 GROUP BY 일 수 있다는 힌트 중 하나입니다. 해당 열 또는 열 그룹에 중복 값이있을 가능성이 높습니다. 최대 효율성을 위해 ORDER BY 절과 동일한 순서로이 필드 그룹에 대해 정의 된 키가 있는지 확인하십시오.

+1

마침내 !!!! 너무 감사합니다!!!!! – user2848080

-1

$ sql1의 불법 그룹

그룹별로 사용 ​​방법을 알려주십시오.

select 
SUM(datamb) AS value_sum, 
dataplan as "first plan row value in this table for this phone number", 
phonenumber AS value_sum1 
FROM maindata 
group by phonenumber 

또는없이 :

select 
SUM(datamb) AS value_sum, 
dataplan as currentplan , 
phonenumber AS value_sum1 
FROM maindata 
group by phonenumber, dataplan 
관련 문제