zoukankan      html  css  js  c++  java
  • 显示数据时,将同列不同行的数据合并到其中一行的sql

    例:把同列不同行的数据值合并到其中的一行中

    试了很多子查询,都不行,想不出来了,最后用笨办法给拼到一起

     

    笨办法:

    1. 先把表中的”电费峰、电费平、电费谷、车间电费“的记录给过滤掉,显示其他的所有数据

      --语句1
      1 select ID,CUSTNAME,ROOMNAME,COSTTERMNAME,MONTH,YSMONEY 
      2 from TABLE
      3 where YSMONEY != 0 
      4 and GORETURN='1'  
      5 and CUSTOMERID=49 
      6 and COSTTERMNAME not in ('电费尖','电费峰','电费平','电费谷','车间电费')
       
    2. 再单独写sql 计算“电费峰、电费平、电费谷、车间电费”的和

      --语句2
      1 select sum(MONEY) 
      2 from TABLE
      3 where GORETURN='1'  
      4 and CUSTOMERID=49 
      5 and COSTTERMNAME IN ('电费尖','电费峰','电费平','电费谷','车间电费')
       
    3. 写sql 单独查询出"车间电费",并将计算和的sql 作为子查询,查出来的结果赋值给“车间电费”

      --语句3
      1 select ID,CUSTNAME,ROOMNAME,COSTTERMNAME,MONTH,YSMONEY=(语句2) 
      2 from TABLE 
      3 where COSTTERMNAME='车间电费' 
      4 and GORETURN='1'  
      5 and CUSTOMERID=49
    4. 将sql合并查询

        语句1

        union all

        语句3

    完整的sql

     1 select ID,CUSTNAME,ROOMNAME,COSTTERMNAME,MONTH,YSMONEY 
     2 from TABLE 
     3 where YSMONEY != 0 
     4 and GORETURN='1'  
     5 and CUSTOMERID=49 
     6 and COSTTERMNAME not in ('电费尖','电费峰','电费平','电费谷','车间电费')
     7 union all
     8 select ID,CUSTNAME,ROOMNAME,COSTTERMNAME,MONTH,YSMONEY=(select sum(MONEY) 
     9 from TABLE 
    10 where GORETURN='1'  
    11 and CUSTOMERID=49 
    12 and COSTTERMNAME IN ('电费尖','电费峰','电费平','电费谷','车间电费')
    13 ) 
    14 from TABLE 
    15 where COSTTERMNAME='车间电费' 
    16 and GORETURN='1'  
    17 and CUSTOMERID=49

     欢迎知道好方法的大佬批评指教

     

     

  • 相关阅读:
    盒模型(框模型)
    边框
    尺寸及溢出处理
    HTML标签分类
    尺寸单位和颜色的取值
    选择器的优先级
    C++ 代码模板
    LC 425. Word Squares 【lock,hard】
    LC 660. Remove 9 【lock, hard】
    LC 759. Employee Free Time 【lock, hard】
  • 原文地址:https://www.cnblogs.com/wfg934dbk/p/13404815.html
Copyright © 2011-2022 走看看