不是很清楚你的意思,如果没有找到匹配记录是更新 year(or month)字段还是插入一条新记录?
解决方案 »
- pl sql 中 show serveroutput 没有反应 ?
- 请大家帮忙!刚学ORACLE10g,如何打开自带的表
- oracle9i不能安装的问题
- 求一条SQL语句,谢谢。
- 按月分组查询的问题,各位前辈帮帮小弟吧!
- 关于Oracle 10g的问题,请问高手我怎样查看用户在什么时候被哪个用户锁定了?(备注:帐户已经解锁了)
- 怎么办?
- 请问sql的select语句如何显示最后的10条记录?
- 怎么办。。。。oracle中取出的中文是 16进制的...
- 我用配置数据库助手 创建数据库时出现的oracle_home 值 与 在注册表中的oracle_home 值不同,如果注册表中的值是对的,那我应该改动那个
- 求助一sql语句!
- 下面的这个是ORACLE自带的例子,我在运行的时候就报这个错,请大家帮忙
year (PKEY) 2005
month (PKEY) 02
有一个表,有如下字段: 假设今天是2005年2月2号,想从表里day_03字段开始查询,查到day_31,找到第一个
是0的字段名,如果没有就在MONTH上加1,到下个月去,从day_01开始查,如果month是12的话,就将year加1,再从day_01开始查,始终是为了找到第一个内容是0的字段名.
急,在线等
字段名 内容(day_01等的内容,0表示上班,1表示休息)
id 1000
year (pkey1) 2005
month (pkey2) 02
day_01 1
day_02 0
.
.
day_30 1
day_31 0
create or replace view my_calendar
as
select yt.year, yt.month, '01' day, sum(yt.day_01) value
from your_table yt
group by yt.year yt.month
union
select yt.year, yt.month, '02' day, sum(yt.day_02) value
from your_table yt
group by yt.year yt.month
union
select yt.year, yt.month, '03' day, sum(yt.day_03) value
from your_table yt
group by yt.year yt.month
union
...
union
select yt.year, yt.month, '31' day, sum(yt.day_31) value
from your_table yt
group by yt.year yt.month;然后根据你输入的日期对视图进行查询:
select mc.vlaue
from my_calendar mc
where mc.year = to_char(日期, 'YYYY')
and mc.month = to_char(日期, 'MM')
and mc.day = to_char(日期, 'DD');
而且要在ASP.NET(VB.NET),ORACLE9I里使用的.
请再看看
谢谢
select mc.year||'-'||mc.month||'-'||mc.day next_work_day
from my_calendar mc
where
mc.year||'-'||mc.month||'-'||mc.day > to_char(日期,'YYYY-MM-DD')
and mc.value = 1;
日期:20050202
可以吗?where
mc.year||'-'||mc.month||'-'||mc.day > to_char(日期,'YYYY-MM-DD')
and mc.value = 1;
select * from a;
A B C D
2005 02 02 1
2005 02 03 0
2005 02 04 1
2005 02 05 1
2005 02 01 1
2005 02 06 1
2005 02 07 1
select *
from a
where a.a || '-' || a.b || '-' || a.c >
to_char(sysdate - 25, 'YYYY-MM-DD')
and a.d = 1;
结果是:
A B C D
2005 02 06 1
2005 02 07 1用日期格式YYYYMMDD也可以,处理就更简单了。
where
mc.year||mc.month||mc.day > to_char(日期,'YYYYMMDD')
and mc.value = 1;
month_end,后面一用分组,就出错误
where
mc.year||mc.month||mc.day > to_char(20050202,'YYYYMMDD')
and mc.value = 1where
mc.year||mc.month||mc.day > to_char('0050202','YYYYMMDD')
and mc.value = 1
mc.year||mc.month||mc.day > 20050202