表结构:id A1 name1 A2 name2 rq
1 100 n1 240 m1 20080501
2 110 n1 200 m1 20080502
3 120 n1 220 m1 20080503
4 150 n1 250 m1 20080504
5 130 n1 255 m1 20080505我想实现的查询结果是:
日期 A1 NAME1 A2 NAME2
01 100 n1 140 m1
02 110 n1 100 m1
03 125 n1 105 m1
04 150 n1 110 m1
05 130 n1 155 m1
>120个数(n1,m1) 3 n1 2 m1我是在存储过程中实现此功能,用union连表的方法,但是最后一行就不会写了。
试着用了子查询,但oracle中可能是我用的不对,查不不来。
上面只是个例子,请哪位大侠帮帮忙给写段SQL语句解决一下。
小弟先谢谢了!
1 100 n1 240 m1 20080501
2 110 n1 200 m1 20080502
3 120 n1 220 m1 20080503
4 150 n1 250 m1 20080504
5 130 n1 255 m1 20080505我想实现的查询结果是:
日期 A1 NAME1 A2 NAME2
01 100 n1 140 m1
02 110 n1 100 m1
03 125 n1 105 m1
04 150 n1 110 m1
05 130 n1 155 m1
>120个数(n1,m1) 3 n1 2 m1我是在存储过程中实现此功能,用union连表的方法,但是最后一行就不会写了。
试着用了子查询,但oracle中可能是我用的不对,查不不来。
上面只是个例子,请哪位大侠帮帮忙给写段SQL语句解决一下。
小弟先谢谢了!
03 125 n1 105 m1 怎么出来的
A1 是数据,NAME1是这条数据对应的名称
A2,NAME2同上。
最后一行是要做计算的,当NAME1或NAME2=n1,n2时数据大与120的个数。
这个是我举的例子。实际的项要比这多很多。
最后是要出一个月报报表。显示这个月的每条数据。
最后显示的是计算的那行。
表结构:id A1 name1 A2 name2 rq
1 100 n1 140 m1 20080501
2 110 n1 100 m1 20080502
3 125 n1 105 m1 20080503
4 150 n1 110 m1 20080504
5 130 n1 155 m1 20080505 我想实现的查询结果是:
日期 A1 NAME1 A2 NAME2
01 100 n1 140 m1
02 110 n1 100 m1
03 125 n1 105 m1
04 150 n1 110 m1
05 130 n1 155 m1
>120个数(n1,m1) 3 n1 2 m1 NAME1和NAME2记录的是数据名称例如一种矿石的名称:n1,m1……
比如第一行:就是:1日的n1矿为100,m1矿为140
最后一行显示当矿石名称为n1时,对应的数据大于120的个数,和矿石名称为n2时,对应的数据大于120的个数。
这样说明白些没?
SUM(CASE WHEN A1>120 THEN 1 ELSE 0 END),SUM(CASE WHEN A2>120 THEN 1 ELSE 0 END)就可以了
FROM 表这样上面五条就能出来了至于汇总那条用8楼的就对了
2 ; ID A1 NAME1 A2 NAME2 RQ
---------- ---------- ---------- ---------- ---------- --------------
1 100 n1 240 m1 01-5月 -08
2 110 n1 200 m1 02-5月 -08
3 120 n1 220 m1 03-5月 -08
4 150 n1 250 m1 04-5月 -08
4 130 n1 255 m1 05-5月 -08SQL> select to_char(RQ,'dd') 日期,A1,name1,A2,name2 from t7
2 union
3 select '>120个数(n1,m1)' 日期,(select count(*) from t7 where a1>120) A1,
4 'n1' name1 ,(select count(*) from t7 where a2>120) A2,'m1' name2 from dual;
日期 A1 NAME1 A2 NAME2
--------------- ---------- ---------- ---------- ----------
01 100 n1 240 m1
02 110 n1 200 m1
03 120 n1 220 m1
04 150 n1 250 m1
05 130 n1 255 m1
>120个数(n1,m1) 2 n1 5 m1已选择6行。