设有一个表TEST(ID,收到任务时间,处理任务时间,任务金额):
create table TEST
(
ID VARCHAR2(5) ,
RE_DATE VARCHAR2(10),
CL_DATE VARCHAR2(10),
MONEY NUMBER
)insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('1', '2012-02-10', '2012-02-20', '101');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('2', '2012-02-10', '2012-02-20', '102');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('3', '2012-02-16', '', '55');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('4', '2012-04-15', '2012-05-20', '50');
如何求下列格式数据的sql,求大侠指教!
<table border='1'>
<tr>
<td>月份</td>
<td>当月已完成条数</td>
<td>当月已完成总金额</td>
<td>累计目前未完成条数</td>
<td>累计目前未完成总金额</td>
</tr>
<tr>
<td>2012-02</td>
<td>2</td>
<td>203</td>
<td>1</td>
<td>55</td>
</tr>
<tr>
<td>2012-04</td>
<td>0</td>
<td>0</td>
<td>2</td>
<td>105</td>
</tr>
<tr>
<td>2012-05</td>
<td>1</td>
<td>50</td>
<td>1</td>
<td>55</td>
</tr>
<tr>
<td>2012-06</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>55</td>
</tr>
</table>
create table TEST
(
ID VARCHAR2(5) ,
RE_DATE VARCHAR2(10),
CL_DATE VARCHAR2(10),
MONEY NUMBER
)insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('1', '2012-02-10', '2012-02-20', '101');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('2', '2012-02-10', '2012-02-20', '102');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('3', '2012-02-16', '', '55');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('4', '2012-04-15', '2012-05-20', '50');
如何求下列格式数据的sql,求大侠指教!
<table border='1'>
<tr>
<td>月份</td>
<td>当月已完成条数</td>
<td>当月已完成总金额</td>
<td>累计目前未完成条数</td>
<td>累计目前未完成总金额</td>
</tr>
<tr>
<td>2012-02</td>
<td>2</td>
<td>203</td>
<td>1</td>
<td>55</td>
</tr>
<tr>
<td>2012-04</td>
<td>0</td>
<td>0</td>
<td>2</td>
<td>105</td>
</tr>
<tr>
<td>2012-05</td>
<td>1</td>
<td>50</td>
<td>1</td>
<td>55</td>
</tr>
<tr>
<td>2012-06</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>55</td>
</tr>
</table>
解决方案 »
- oracle连接提示“监控程序无法启动专用的服务器进程”,在线等......
- oracle做DBLINK查询后,为什么要roll back呢?
- 急!求教用pro*c语言对ORACLE中表数据进行操作!!!在线等```
- 有关PLSQL Developer工具的问题
- oracle客户端问题!~高手救救我吧!~
- 这样的查询要求能够用一个SQL语句就实现呢?
- 用什么方法可以对比两个记录本应该相同数据表,找出不同的记录,并把这些记录显示出来。(急)
- 一个非常简单的UPDATE问题
- 如何判断一个string类型的数据是否可以转换为Date
- 高
- oracle job
- 新手提问,请教高人,关于Oracle中alert问题(急!)
静态部分写死,动态数据部分用循序来写,完成一行后以</tr>结束
整个完成后</table>
月份 ----当月已完成条数--当月已完成总金额--累计目前未完成条数--累计目前未完成总金额
2012-02--2-------------203-------------------1--------------55
2012-04--0-------------0--------------------2---------------105
2012-05--1-------------50-------------------1--------------55
2012-06--0-------------0-------------------1-------------- 55
空白处用‘---’填充了,有6月即查询到目前当月。
tochar(CL_DATE,"MM") '月份',
case
when CL_DATE != null and CL_DATE != "" then sum(nvl(MONEY,0)) end '当月已完成总金额',
case
when CL_DATE != null and CL_DATE != "" then count(nvl(CL_DATE,0)) end '当月已完成条数',
case
when CL_DATE == null and CL_DATE == "" then sum(nvl(MONEY,0)) end '当月未完成总金额',
case
when CL_DATE == null and CL_DATE == "" then count(nvl(CL_DATE,0)) end '当月未完成条数',
from test group by tochar(CL_DATE,"MM")
第一列为两个日期列中涉及一直到目前当月的月份,格式为“2012-06”样式;
第二列为该行月份内完成的条数,用“CL_DATE”判断;
第三列求符合第二列条件的金额之和;
第四列累计该月未完成的条数;
第五列求符合第四列条件的金额之和。