Sign-up....

难,难题.高手请进! 求SQL语句

有一个表,有如下字段: 假设今天是2005年2月2号,想从表里day_03字段开始查询,查到day_31,找到第一个

与day_02内容相匹配的字段名,如果没有就在MONTH上加1,到下个月去,从day_01开始查,如果month是12的话,就将year加1,再从day_01开始查,始终是为了找到第一个与2005年2月2号对应字段的内容相同的字段名.

急,在线等

字段名 内容(day_01等的内容,0表示上班,1表示休息)

id(pkey) 1000

year 2005

month 02

day_01 1

day_02 0

.

.

day_30 1

day_31 0

[355 byte] By [msdn] at [2007-8-14 15:30:58]
# 1 Re: 难,难题.高手请进! 求SQL语句

这是什么咚咚?考勤表?

sanoul at 2005-3-2 9:22:46 >
# 2 Re: 难,难题.高手请进! 求SQL语句

不是很清楚你的意思,如果没有找到匹配记录是更新 year(or month)字段还是插入一条新记录?

sanoul at 2005-3-2 9:30:04 >
# 3 Re: 难,难题.高手请进! 求SQL语句

是工作日确认,对不起,上面的假设今天是2005年2月2号,今天的对应的字段内容是固定的,是1.

door0466 at 2005-3-2 9:31:47 >
# 4 Re: 难,难题.高手请进! 求SQL语句

对不起,搞错了.ID不是PKEY 如果没有找到匹配记录,就根据PKEY,到下月的那条记录里去查

year (PKEY) 2005

month (PKEY) 02

door0466 at 2005-3-2 9:35:26 >
# 5 Re: 难,难题.高手请进! 求SQL语句

我的日期是从另一个表提出来的.

而且要在ASP.NET(VB.NET),ORACLE9I里使用的.

请再看看

谢谢

door0466 at 2005-3-2 10:25:15 >
# 6 Re: 难,难题.高手请进! 求SQL语句

前辈好象搞错了.

假设2005年2月2日,该表里根据2005年2月只有一条记录,一条记录的不同字段,对应不同的日期.

不同日期字段下的内容,代表该日期是否休息.我是要提出当前工作日的下一个工作日.

door0466 at 2005-3-2 10:31:02 >
# 7 Re: 难,难题.高手请进! 求SQL语句

根据你输入的日期对视图进行查询:

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;

lynx at 2005-3-2 10:40:50 >
# 8 Re: 难,难题.高手请进! 求SQL语句

我试一下,先谢谢了

door0466 at 2005-3-2 10:59:19 >
# 9 Re: 难,难题.高手请进! 求SQL语句

下面有语法错误

日期:20050202

可以吗?

where

mc.year||'-'||mc.month||'-'||mc.day > to_char(日期,'YYYY-MM-DD')

and mc.value = 1;

door0466 at 2005-3-2 12:17:03 >
# 10 Re: 难,难题.高手请进! 求SQL语句

对不起,我后面还有一项,也要提出来,就是月末日

month_end,后面一用分组,就出错误

door0466 at 2005-3-3 8:36:08 >
# 11 Re: 难,难题.高手请进! 求SQL语句

对不起,其他都好了,只是最后,都不对

where

mc.year||mc.month||mc.day > to_char(20050202,'YYYYMMDD')

and mc.value = 1

where

mc.year||mc.month||mc.day > to_char('0050202','YYYYMMDD')

and mc.value = 1

door0466 at 2005-3-3 8:52:29 >
# 12 Re: 难,难题.高手请进! 求SQL语句

`OK,THANK YOU

mc.year||mc.month||mc.day > 20050202

door0466 at 2005-3-3 9:30:21 >

Oracle

All Classified