Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

SQL语句问题

学习  发表于:2011-08-01 21:38:47  
复制

SQL查询语句

 

SELECT a.区块, a.井号, a.冲程, a.冲次, b.冲程, b.冲次, Min(a.日期) AS 日期
FROM A2 AS A, A2 AS B
WHERE a.井号=b.井号 and (a.冲程<>b.冲程 or a.冲次<>b.冲次) and a.日期>b.日期
GROUP BY a.区块, a.井号, a.冲程, a.冲次, b.冲程, b.冲次;

 

 

这个句子可以完成查询任务,如果加上下列表达式或条件是ACCESS会运行不起

 

IIF(([A]![冲程]=[B]![冲程] or [A]![冲次]=[B]![冲次]),IIF([A]![冲程]=[B]![冲程],"冲次 "&[A]![冲次]&IIF([A]![冲次]>[B]![冲次],"↓","↑")&[B]![冲次],"冲程 "&[A]![冲程]&IIF([A]![冲程]>[B]![冲程],"↓","↑")&[B]![冲程]),"冲次 "&[A]![冲次]&IIF([A]![冲次]>[B]![冲次],"↓","↑")&[B]![冲次]&" "&"冲程 "&[A]![冲程]&IIF([A]![冲程]>[B]![冲程],"↓","↑")&[B]![冲程]&"")

 

如果将SQL里边的 WHERE a.井号=b.井号 and (a.冲程<>b.冲程 or a.冲次<>b.冲次) and a.日期>b.日期 中的 or 改为 xor 则可以运行,不过查询的记录数就发生了变化,该怎么改这个句子才行

 

在帮我看看有没有方法优化语言,数据库比较大,运行起来速度很慢,谢谢大家

 

Top
学习 发表于:2011-08-01 21:42:23
蒋元根 发表于:2011-08-02 06:01:36
供参考:请把数据库中间的B表发上来

学习 发表于:2011-08-02 08:21:19

完整的数据库

点击下载此附件

蒋元根 发表于:2011-08-02 16:16:40
供参考

蒋元根 发表于:2011-08-02 16:17:11
煮江品茶 发表于:2011-08-02 17:20:52

费这个劲套用IIF干吗?在表中加一个字段做分类描述即可。



学习 发表于:2011-08-02 20:13:23

非常感谢蒋元根老师,我的目的达到了,也感谢煮江品茶老师,我可以按照你的思路做做看,谢谢两位



总记录:7篇  页次:1/1 9 1 :