Java sql跨行和向下列添加值
我正在将一个excel“数据库”移植到一个真正的数据库应用程序中,客户希望看到熟悉的电子表格视图,显示跨行添加的数据和向下汇总的列。使用SQL查询是否可以实现这一点?或者应用程序是否应该执行这些聚合计算?我正在用Java和Oracle编写持久化应用程序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),
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本地环境中工作得很好,但是当我推到我们的开发服务器时,出现了“代码太大,无法重试”错误