2011-08-19 7 views
0

필드가있는 테이블이 있고 아래의 세 가지 필드에서 데이터를 합산하려고합니다. 다음과 같이 코드를 작성했지만 오류가 있습니다. 그래서 나에게 올바른 코드를 만들기 위해 저를 도와주세요 :mysql의 동일한 테이블에서 세 개의 필드를 합산하는 방법

<?php include "config.php"; ?> 
    <?php $results = mysql_query 
("SELECT sum(hit),as total from ( 
select hit from sound union 
select hit from soundK union 
select hit from soundD ") ; 
while ($row = mysql_fetch_array($results)) 
{ ?> 
<?php echo $row[total];?> <?php }?> 

때문에 사전에 가능한 한 빨리

감사로 도와주세요

+0

는 .. .. 데이터베이스 구조를 제공 그래서 당신은 같은 테이블에없는 세 가지 다른 분야의 외래 키 –

+1

필요 세 개의 다른 테이블에서 같은 필드 이름. – paxdiablo

답변

1

당신이 여분의 ,, 닫는 ) 및 파생 테이블 누락 별명 :

<?php include "config.php"; ?> 
<?php $results = mysql_query(
    "SELECT sum(hit) as total 
    FROM ( 
     SELECT sum(hit) hit from sound 
     UNION ALL SELECT sum(hit) hit from soundK 
     UNION ALL SELECT sum(hit) hit from soundD 
    ) rs") ; 
while ($row = mysql_fetch_array($results)) { ?> 
    <?php echo $row['total'];?> 
<?php }?> 

당신이 3 개별 열려면 다음

을 16,
<?php include "config.php"; ?> 
<?php $results = mysql_query(
    "SELECT soundHits, soundKHits, soundDHits 
    FROM ( 
     SELECT sum(hit) soundHits from sound 
    ) a, (
     SELECT sum(hit) soundKHits from soundK 
    ) b, ( 
     SELECT sum(hit) soundDHits from soundD 
    ) c") ; 
while ($row = mysql_fetch_array($results)) { ?> 
    soundHits: <?php echo $row['soundHits'] ;?> 
    soundKHits: <?php echo $row['soundKHits'] ;?> 
    soundDHits: <?php echo $row['soundDHits'] ;?> 
<?php }?> 
+0

하지만이 하나의 합계를 생성하지 않을까요 ?? 및 각 행의 세 colomn에 대한 합계가 아닌가요? –

+0

@ gaurav-shah 예, 그것이 OP가 원하는 것이라고 생각합니다. –

+0

나는 다른 방법이라고 생각한다. 어쨌든 그의 질문은 충분히 명확하지 않습니다. 그래서 우리는 그에게 회신을 남길 수 있습니다. :) –

0

또는 ..., 당신이 사용하는 다른 하나 개의 테이블을 조인 매핑 할 필요가 있기 때문에

select (
    (select sum(hit) from sound) + 
    (select sum(hit) from soundK) + 
    (select sum(hit) from soundD)) 
+0

테이블에 레코드가없는 경우 내부 선택을'IFNULL()'로 감싸 야합니다. –

관련 문제