Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

资讯

公司动态
业界资讯

Access资讯

Excel资讯

Word资讯

PPT资讯

其它Office资讯

微软新闻

IT资讯

热门文章

  • 中科院实施超龙计划 龙芯三..
  • 中科院建立高技术产业化平台..
  • 龙芯3号多核处理器将达64..
  • IPTV涉及2300亿专利..
  • 高清数字电视开播 央视已确..
  • 4年一见AMD缺货冲击波 ..

最新文章

  • 李开复:中国高校急需根据社..
  • VBA编程常用语句300句
  • SQL基础:常用SQL语句..
  • ACCESS学习日记
  • 多表查询技巧
  • Oracle数据库EXP、..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 资讯 > 业界资讯 > IT资讯
IT资讯

精妙SQL语句 值得推敲

说明:复制表(只复制结构,源表名:a 新表名:b)
SQL: select * into b from a where 1<>1

说明:拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: in sert into b(a, b, c) select d,e,f from b;

说明:显示文章、提交人和最后回复时间
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

说明:外连接查询(表名1:a 表名2:b)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

说明:日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5


说明:两张关联表,删除主表中已经在副表中没有的信息
SQL:
de lete from info where not exists ( select * from infobz where info.infid=infobz.infid )

说明:--
SQL:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,'YYYY/MM') =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') ¦¦ '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y,
WHERE X.NUM = Y.NUM (+)
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B
WHERE A.NUM = B.NUM

说明:--
SQL:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称='"&strdepartmentname&"' and 专业名称='"&strprofessionname&"' order by 性别,生源地,高考总成绩

说明:
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)
SQL:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC
FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration
FROM TELFEESTAND a, TELFEE b
WHERE a.tel = b.telfax) a
GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')

说明:四表联查问题:
SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

说明:得到表中最小的未使用的ID号
SQL:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID
FROM Handle
WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)


数据库里有多条同名记录。读取出来的时候,相同的就显示一条的方法:select distinct `field` from tablefield就唯一不会重复了选出出现频率最大的值,例如CELL_ID DATE TIME BUSY_TCH_MEAN30151 2003-12-20 0:00:00 0.01 30151 2003-12-20 1:00:00 1.89 30151 2003-12-20 2:00:00 0.59 30151 2003-12-20 3:00:00 0.43 30151 2003-12-20 4:00:00 0.7 30151 2003-12-20 5:00:00 0.01 30151 2003-12-20 6:00:00 0.08 30151 2003-12-20 7:00:00 0.01 30151 2003-12-20 8:00:00 1.2 30151 2003-12-20 9:00:00 1.57 30151 2003-12-20 10:00:00 3.96 30151 2003-12-20 11:00:00 3.96 30151 2003-12-20 12:00:00 5.65 其中BUSY_TCH_MEAN字段出现频率最多的值是0.01,怎么把他找出来(用SQL)?SELECT `BUSY_TCH_MEAN` , COUNT(*) AS numFROM mytable GROUP BY `BUSY_TCH_MEAN` ORDER BY num DESCLIMIT 0,1

非常不错\!
顺便补充一下

SELECT `BUSY_TCH_MEAN` , COUNT(*) AS num
FROM mytable
GROUP BY `BUSY_TCH_MEAN`
ORDER BY num DESC
LIMIT 0,1

这种格式的SQL语句不被JET支持,MySQL中常见
MS的产品用

SELECT TOP 1  `BUSY_TCH_MEAN` , COUNT(*) AS num
FROM mytable
GROUP BY `BUSY_TCH_MEAN`
ORDER BY num DESC

发布人:佚名-Access开发者  
分享到:
点击次数:  更新时间:2006-10-23 21:39:45  【打印此页】  【关闭】
上一篇:分类计算余额的函数  下一篇:BenQ Joybook主攻13.3吋宽屏笔记本市场



相关文章

  • • 李开复:中国高校急需根据社会需求培养学生
  • • VBA编程常用语句300句
  • • SQL基础:常用SQL语句详解 (转)
  • • ACCESS学习日记
  • • 多表查询技巧
  • • Oracle数据库EXP、IMP命令语句使用方法
  • • SQL注入的高级应用ACCESS篇!
  • • 代码打开页面设置

热门文章

  • [2006-09-29] 印度式经济增长没有显著减贫和公平效应access数据库
  • [2006-08-03] IBM力推AMD发力服务器 称不影响与英特尔合作access数据库
  • [2006-09-22] 双核电脑售价跌破4000元access数据库
  • [2005-08-04] 微软亚洲研究院成人才摇篮 中国学生可能改造MSNaccess数据库
  • [2006-01-03] 中国3G手机全解读:今年3G贴身博弈战无可避免access数据库
  • [2006-02-07] 信产部发文整治短信违规 六类行为重点打击access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn