繁体   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