【闪电结贴】【50分求一SQL语句的含义】

0轰隆隆0 2007-07-03 04:42:23
UPDATE XXX SET TOTAL=TOTAL+1,MONTHS=(IF (MONTH(LAST_TIME)=MONTH(NOW()),MONTHS+1,1)),WEEKS=(IF (YEARWEEK(LAST_TIME)=YEARWEEK(NOW()),WEEKS+1,1)),DAYS=(IF (TO_DAYS(LAST_TIME)=TO_DAYS(NOW()),DAYS+1,1)),LAST_TIME=NOW() WHERE ZID='20070420'

嘿嘿,最好给点解释
...全文
176 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
0轰隆隆0 2007-07-03
  • 打赏
  • 举报
回复
谢谢大家,结贴了
wasuka 2007-07-03
  • 打赏
  • 举报
回复
操作数据表XXX,对于所有ZID为'20070420'的记录:
将TOTAL字段+1;
如果LAST_TIME字段所表示的月份等于当前月份,更新MONTHS字段+1,否则更新MONTHS为1;
如果LAST_TIME字段所表示的周是当前周,更新WEEKS字段+1,否则更新WEEKS为1;
如果LAST_TIME字段表示的日是当前日,更新DAYS字段+1,否则更新DAYS为1;
更新LAST_TIME地段为当前时间。
懒得去死 2007-07-03
  • 打赏
  • 举报
回复
MYSQL里面必须有IF END 结构。
肥胖的柠檬 2007-07-03
  • 打赏
  • 举报
回复
UPDATE XXX SET TOTAL=TOTAL+1,
MONTHS=( case when MONTH(LAST_TIME)=MONTH(getdate()) then MONTHS+1 else 1 end ),
--当LAST_TIME字段的月和今天的月相等,MONTHS+1,否则为1
WEEKS=( case when DATEPART ( wk , LAST_TIME )=DATEPART (wk ,getdate()) then WEEKS+1 else 1 end ),--当LAST_TIME字段的周和今天的周相等,WEEKS+1,否则为1
DAYS=(( case when DAY(LAST_TIME )=DAY(getdate()) then DAYS+1 else 1 end )
--当LAST_TIME字段的日和今天的日相等,DAYS+1,否则为1
WHERE ZID='20070420'

你的应是这样~
mugua604 2007-07-03
  • 打赏
  • 举报
回复
NOW(),TO_DAYS(),IF mssql都不能这么用阿
====
GETDATE()
mugua604 2007-07-03
  • 打赏
  • 举报
回复
IF 在T-SQL中不是函数!
用CASE WHEN
Zack999 2007-07-03
  • 打赏
  • 举报
回复
NOW(),TO_DAYS(),IF mssql都不能这么用阿
mugua604 2007-07-03
  • 打赏
  • 举报
回复
--try
UPDATE XXX SET TOTAL=TOTAL+1,
MONTHS=(case when(MONTH(LAST_TIME)=MONTH(NOW()) then MONTHS+1 else 1) end),
WEEKS=(case when (YEARWEEK(LAST_TIME)=YEARWEEK(NOW()) then WEEKS+1 else 1) end),
DAYS=(Icase when (TO_DAYS(LAST_TIME)=TO_DAYS(NOW()) then DAYS+1else ) end ),
LAST_TIME=NOW()
WHERE ZID='20070420'
0轰隆隆0 2007-07-03
  • 打赏
  • 举报
回复
啊,这是MYSQL语句
肥胖的柠檬 2007-07-03
  • 打赏
  • 举报
回复
你这个不是MSSQL的吧?
0轰隆隆0 2007-07-03
  • 打赏
  • 举报
回复


表的结构:

XXX:zid, total, months, weeks, days, mod_time, last_time
Zack999 2007-07-03
  • 打赏
  • 举报
回复
不能运行
赤兔Oracle数据库恢复软件是一款专业好用的Oracle数据库抢修恢复软件。软件功能强大,持修复因各种原因造成的数据库无法打开或数据库删除后没有备份的问题,从而实现对Oracle数据库的抢修恢复,最大限度减少数据丢失。是用户实现Oracle数据库抢修恢复的好帮手。需要的朋友快来下载吧! 赤兔Oracle数据库恢复软件软件功能 1.不需要运行Oracle数据库软件,EOR直接读取数据库文件解析数据。支持ASM,能够直接从ASM磁盘中导出数据,即使相关的磁盘组不能成功mount 2.支持从ASM中直接抽取出数据文件和其他任意存储在ASM中的文件(包括控制文件2.日志文件和归档日志等),即使相关的磁盘组不能成功mount 3.在ASM磁盘损坏严重的情况下,EOR可以扫描ASM磁盘,提取出没有被覆盖的数据文件,然后再提取和恢复数据。 4.支持的Oracle数据库版本包括7,8i,9i,10g,11g,12c支持跨平台运行,aix,hpux,linux,windows等 5.支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i ) , BINARY FLOAT, BINARY DOUBLE (10g ) 6.全面支持LOB字段:支持CLOB、NCLOB和BLOBCLOB,支持Big Endian和Little Endian字节序 7.支持LOB分区,子分区 8.支持同一个表中,不同LOB列使用不同CHUNK SIZE的情况 9.CLOB数据可以导出到与其他列相同的文件中,或存储到单独的文件 10.LOB列在没有SYSTEM表空间的情况下仍然能够导出 11.LOB列在相关的lob index损坏的情况下依然能够导出 12.能够恢复Oracle 11g及以上版本的SecureFile LOB(目前不支持压缩、去重和加密的SecureFile LOB)支持各种表,包括普通的HEAP表,IOT表和聚簇(CLUSTER)表 13.支持IOT表: 14.支持普通IOT表的导出 15.支持压缩IOT表的导出 16.支持IOT表溢出段 17.支持IOT表分区(包括子分区)只能在有SYSTEM表空间时才能导出IOT表 18.支持压缩表 19.支持表被truncate后的数据恢复 20.支持表被drop后的数据恢复 21.在有SYSTEM表空间的情况下,自动获取数据字典信息 22.支持在没有SYSTEM表空间和数据字典损坏的情况下恢复数据,在没有数据字典可用时,EOR能够自动判断数据的类型 23.支持10g及以上的大文件(BigFile)表空间 24.全面支持64位系统,支持超过4G大小的数据文件。 25.支持复制操作系统命令不能复制的坏文件 26.支持同一个库中不同块大小的数据文件。 27.支持多种字符集之间的转换,能够正确的转换CLOB、NCLOB、NVARCHAR2列类型的数据到指定的字符集。 28.自动检测数据文件的表空间号和文件号 29.导出的数据格式包括纯文本和DMP文件两种。以纯文本导出时,能够自动生成建表的SQL语句和SQL*Loader导入所需的control文件 30.支持DESC表,以显示表的列定义支持列出表的分区和子分区 31.支持对误删除数据的恢复,即使被删除数据的表中有LOB列,即使被删除数据的表中对应row directory中所有记录的offset都已经完全被Oracle清除 赤兔Oracle数据库恢复软件软件安装   把下载好的安装包解压到当前文件夹,之后双击【EliteOracle .exe】运行文件进行安装,打开的时候会出现安装框,依次开始安装,依照步骤点击下一步,并选择同意协议和软件安装位置即可。     点击【完成】按钮,赤兔Oracle数据库恢复软件安装过程就完成了。 赤兔Oracle数据库恢复软件的使用   安装完成后,点击【赤兔Oracle数据库恢复软件】快捷方式即可进入赤兔Oracle数据库恢复软件。如图所示,这是软件的操作界面,用户可以在这里实现自己所需要的各种功能。 赤兔Oracle数据库恢复软件软件卸载: 对于比较难卸载的,在这里我向大家推荐新毒霸-软件管理工具,可以闪电卸载你所不需要的软件。或者依次打开我的电脑->卸载或更改程序->卸载你所卸载的软件,您可以用 Window XP控制面板中的添加或删除程序功能,或用 Windows Vista、Windows 7中的程序和功能卸载时,您可以选择"删除在本机保存的个人配置数据"。然后点击开始卸载。推荐您不勾选此项,以保留设置,供以后再安装时使用。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧