簡體   English   中英

從三個表如何SUM,Sum of Total

[英]How to SUM, SUM of Total from three table

對不起,我想重復一下這個問題,因為我覺得你不清楚,我這樣做很難找到我想要的東西。

我想從單個查詢的三個表中獲得總計的總和,這里是我的表!

1:付款

id | school_fee | trans_fee
1    20000        3000
2    10000        2000

The total is 35000

代碼就在這里

 <?php



             //mysql_connect


if (isset($_GET['query'])) 
          {    
                 $query=$_GET['query'];

      // Instructions if $_POST['value'] exist    
      }  

                  // gets value sent over search form

                    $min_length = 3;
          // you can set minimum length of the query if you want

        if(strlen($query) >= $min_length){ // if query length is more or equal minimum 
                  length         then

    $query = htmlspecialchars($query); 
    // changes characters used in html to their equivalents, for example: < to &gt;

    $query = mysql_real_escape_string($query);
    // makes sure nobody uses SQL injection

    $raw_results = mysql_query("SELECT SUM(school_fee+trans_fee) As Total   
            FROM payment WHERE (`class` LIKE '%".$query."%')") or die(mysql_error());



               // * means that it selects all fields, you can also write: `id`,  
                   `title`, `text`
             // articles is the name of our table

            // '%$query%' is what we're looking for, % means anything, for example  
            if    
                         $query  
              is Hello
    // it will match "hello", "Hello man", "gogohello", if you want exact match use  
              `title`='$query'
    // or if you want to match just full word so "gogohello" is out use '% $query %'  
            ...OR ... '$query %' ... OR ... '% $query'


    if(mysql_num_rows($raw_results) > 0){

      // if one or more rows are returned do following

        while($results = mysql_fetch_array($raw_results)){
         while($results2 = mysql_fetch_array($raw_results2)){

        // 
       $results = mysql_fetch_array($raw_results) puts data from database into  
     array, while it's valid it does the loop


            // posts results gotten from database(title and text) you can also show    
            id ($results['id'])
        }{



            echo " &nbsp;Total amount of money payed by&nbsp;"       
        .$results['class'] ."&nbsp;"."class is&nbsp;" . $results ['Total'] .  
          "&nbsp;/=Tshs";



               echo"<br>";  echo"<br>"; 
           }



          }
            }
             }

     ?> 

2:payment_one

     id | school_fee | trans_fee
     1    10000        20000
     2    30000        50000

     The Total is 110000

CODEs與第一個表相同,除了代碼表的名稱

 <?php



             //mysql_connect


if (isset($_GET['query'])) 
          {    
                 $query=$_GET['query'];

      // Instructions if $_POST['value'] exist    
      }  

                  // gets value sent over search form

                    $min_length = 3;
          // you can set minimum length of the query if you want

        if(strlen($query) >= $min_length){ // if query length is more or equal minimum 
                  length         then

    $query = htmlspecialchars($query); 
    // changes characters used in html to their equivalents, for example: < to &gt;

    $query = mysql_real_escape_string($query);
    // makes sure nobody uses SQL injection

    $raw_results = mysql_query("SELECT SUM(school_fee+trans_fee) As Total   
            FROM payment_one WHERE (`class` LIKE '%".$query."%')") or die(mysql_error());



               // * means that it selects all fields, you can also write: `id`,  
                   `title`, `text`
             // articles is the name of our table

            // '%$query%' is what we're looking for, % means anything, for example  
            if    
                         $query  
              is Hello
    // it will match "hello", "Hello man", "gogohello", if you want exact match use  
              `title`='$query'
    // or if you want to match just full word so "gogohello" is out use '% $query %'  
            ...OR ... '$query %' ... OR ... '% $query'


    if(mysql_num_rows($raw_results) > 0){

      // if one or more rows are returned do following

        while($results = mysql_fetch_array($raw_results)){
         while($results2 = mysql_fetch_array($raw_results2)){

        // 
       $results = mysql_fetch_array($raw_results) puts data from database into  
     array, while it's valid it does the loop


            // posts results gotten from database(title and text) you can also show    
            id ($results['id'])
        }{



            echo " &nbsp;Total amount of money payed by&nbsp;"       
        .$results['class'] ."&nbsp;"."class is&nbsp;" . $results ['Total'] .  
          "&nbsp;/=Tshs";



               echo"<br>";  echo"<br>"; 
           }



          }
            }
             }

     ?> 

最后一個是

3:payment_two

    id | school_fee | trans_fee
    1    10000        20000
    2    30000        10000

    The Total is 70000

代碼如下

<?php



             //mysql_connect


if (isset($_GET['query'])) 
          {    
                 $query=$_GET['query'];

      // Instructions if $_POST['value'] exist    
      }  

                  // gets value sent over search form

                    $min_length = 3;
          // you can set minimum length of the query if you want

        if(strlen($query) >= $min_length){ // if query length is more or equal minimum 
                  length         then

    $query = htmlspecialchars($query); 
    // changes characters used in html to their equivalents, for example: < to &gt;

    $query = mysql_real_escape_string($query);
    // makes sure nobody uses SQL injection

    $raw_results = mysql_query("SELECT SUM(school_fee+trans_fee) As Total   
            FROM payment_two WHERE (`class` LIKE '%".$query."%')") or die(mysql_error());



               // * means that it selects all fields, you can also write: `id`,  
                   `title`, `text`
             // articles is the name of our table

            // '%$query%' is what we're looking for, % means anything, for example  
            if    
                         $query  
              is Hello
    // it will match "hello", "Hello man", "gogohello", if you want exact match use  
              `title`='$query'
    // or if you want to match just full word so "gogohello" is out use '% $query %'  
            ...OR ... '$query %' ... OR ... '% $query'


    if(mysql_num_rows($raw_results) > 0){

      // if one or more rows are returned do following

        while($results = mysql_fetch_array($raw_results)){
         while($results2 = mysql_fetch_array($raw_results2)){

        // 
       $results = mysql_fetch_array($raw_results) puts data from database into  
     array, while it's valid it does the loop


            // posts results gotten from database(title and text) you can also show    
            id ($results['id'])
        }{



            echo " &nbsp;Total amount of money payed by&nbsp;"       
        .$results['class'] ."&nbsp;"."class is&nbsp;" . $results ['Total'] .  
          "&nbsp;/=Tshs";



               echo"<br>";  echo"<br>"; 
           }



          }
            }
             }

     ?> 

所以我想通過php查詢,以便我可以得到215000作為這三個表的總計,我需要幫助。 注意:id是自動增量。

你可以用UNION做到這一點:

SELECT SUM(total) FROM 
(
  SELECT SUM(school_fee+trans_fee) As Total   
            FROM payment
  UNION 
  SELECT SUM(school_fee+trans_fee) As Total   
            FROM payment_one
  UNION
  SELECT SUM(school_fee+trans_fee) As Total   
            FROM payment_two
 ) a

sqlfiddle演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM