Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java sql跨行和向下列添加值_Java_Sql_Web Applications - Fatal编程技术网

Java sql跨行和向下列添加值

Java sql跨行和向下列添加值,java,sql,web-applications,Java,Sql,Web Applications,我正在将一个excel“数据库”移植到一个真正的数据库应用程序中,客户希望看到熟悉的电子表格视图,显示跨行添加的数据和向下汇总的列。使用SQL查询是否可以实现这一点?或者应用程序是否应该执行这些聚合计算?我正在用Java和Oracle编写持久化应用程序 Schema: CREATE TABLE CTC_COST_TO_COMPLETE ( COST_TO_COMPLETE_ID VARCHAR2(24) NOT NULL, LINECODE VARCHAR2(16),

我正在将一个excel“数据库”移植到一个真正的数据库应用程序中,客户希望看到熟悉的电子表格视图,显示跨行添加的数据和向下汇总的列。使用SQL查询是否可以实现这一点?或者应用程序是否应该执行这些聚合计算?我正在用Java和Oracle编写持久化应用程序

Schema:
    CREATE TABLE CTC_COST_TO_COMPLETE (
    COST_TO_COMPLETE_ID VARCHAR2(24) NOT NULL,
    LINECODE VARCHAR2(16),
    DEPT VARCHAR2(6),
    YEAR VARCHAR2(4),
    SUPERVISOR VARCHAR2(9),
    JAN VARCHAR2(12),
    FEB VARCHAR2(12),
    MAR VARCHAR2(12),
    APR VARCHAR2(12),
    MAY VARCHAR2(12),
    JUN VARCHAR2(12),
    JUL VARCHAR2(12),
    AUG VARCHAR2(12),
    SEP VARCHAR2(12),
    OCT VARCHAR2(12),
    NOV VARCHAR2(12),
    DEC VARCHAR2(12),
             );
每行代码存储主管每月所需的工时估计值

RAW:
id       Linecode     Dept    Year    Supervisor    Jan     Feb     Mar ... Dec
1        ED.312        400    2011      P13341       12      10      15 ...   6
2        GR.544        400    2011      P13341       23       5       1 ...   9
3        WV.132        400    2011      P13341        2       1      18 ...  16



Need out on web page:
  Linecode     Dept    Year    Supervisor    Jan     Feb     Mar ... Dec   Sub Total
  ED.312        400    2011      Rozycki      12      10      15 ...   6         135
  GR.544        400    2011      Rozycki      23       5       1 ...   9          76
  WV.132        400    2011      Rozycki       2       1      18 ...  16          89
 ====================================================================================
                                      Total   37      16      34 ...  31         300   
视图比我展示的要复杂一点。例如,我可能想按行代码汇总所有主管的总计


谢谢

这最好在数据库层之外完成。值得一提的是,无论如何,您都不会以所示的行/列格式存储它(或者不应该),在这种情况下,制表只发生在显示层


渲染时使用2d数组存储数据,并沿数组的维度求和以获得行/列总计。

如果您确实想在SQL中进行小计,并且不想使用类似的方法,可以执行以下操作:

select Jan, Feb, Mar, ..., Dec, Jan + Feb + Mar + ... + Dec AS SubTotal
from MyTable

union all

select SUM(Jan), SUM(Feb), SUM(Mar), SUM(Jan + Feb + Mar + ... + Dec)
from MyTable

您的数据库设计(架构)是什么?我已经编辑了我的问题,以包含架构信息。当您说不以行/列格式存储时,您是指我的数据库架构吗?换句话说,我的表没有正常化?我认为每个记录有12个月字段没有什么大不了的,因为它们包含每月的工时估算。我的查询没有那么简单。我开始研究Oracle汇总。在DB层之外-在Servlet或视图中?@jeff这是一个表示层问题,所以我会使用ViewThank,谢谢你给我回复。我确实尝试在视图中这样做,它在我的Eclipse本地环境中工作得很好,但是当我推到我们的开发服务器时,出现了“代码太大,无法重试”错误