Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:帮忙检查一下SELECT语句...(已解决)

1楼
菜鸟foxtable 发表于:2009/4/8 11:33:00
select 床位,姓名,表A.ID,项目,剂量,用法,用量,单位,单价 from 表A inner join 表B on 表A.ID = 表B.ID where 停止日期 is null and ID in (2009111,2009114,2009121) order by 床位

执行上述代码提示""

删除紫色代码执行正常...


图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看

原数据是外部表,这里我做了个简单示例为内部表,请老师指点...

select 床位,姓名,{表A}.ID,项目,规格,单价 from {表A} inner join {表B} on {表A}.ID = {表B}.ID where 日期 is null and ID in (001,005,008) order by 床位

从ID为001,005,008中提取日期为空的项目数据,并以床位为排序依据...

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试文件.table
[此贴子已经被作者于2009-4-8 14:29:08编辑过]
2楼
cpayinyuan 发表于:2009/4/8 12:54:00

建议你把表A和表B的表结构贴出来,这样才方便大家帮你分析错误.如果既无文件,又无表结构,只有一个查询语句判断它错在哪儿是比较困难的.

[此贴子已经被作者于2009-4-8 12:54:18编辑过]
3楼
菜鸟foxtable 发表于:2009/4/8 13:39:00
select 床位,姓名,{表A}.ID,项目,规格,单价 from {表A} inner join {表B} on {表A}.ID = {表B}.ID where 日期 is null and ID in (001,005,008) order by 床位

从ID为001,005,008中提取日期为空的项目数据,并以床位为排序依据...

原数据是外部表,这里我做了个简单示例为内部表,请老师指点...

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试文件.table

[此贴子已经被作者于2009-4-8 13:40:38编辑过]
4楼
狐狸爸爸 发表于:2009/4/8 13:46:00
select 床位,姓名,{表A}.ID,项目,规格,单价 from {表A} inner join {表B} on {表A}.ID = {表B}.ID where 日期 is null and {表A}.ID in ('001','005','008') order by 床位
5楼
cpayinyuan 发表于:2009/4/8 13:55:00
以下是引用菜鸟foxtable在2009-4-8 11:33:00的发言:
select 床位,姓名,表A.ID,项目,剂量,用法,用量,单位,单价 from 表A inner join 表B on 表A.ID = 表B.ID where 停止日期 is null and ID in (2009111,2009114,2009121) order by 床位

执行上述代码提示""

删除紫色代码执行正常...


图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看

原数据是外部表,这里我做了个简单示例为内部表,请老师指点...

select 床位,姓名,{表A}.ID,项目,规格,单价 from {表A} inner join {表B} on {表A}.ID = {表B}.ID where 日期 is null and ID in (001,005,008) order by 床位

从ID为001,005,008中提取日期为空的项目数据,并以床位为排序依据...

 下载信息  [文件大小:312.0 KB  下载次数:2]
图片点击可在新窗口打开查看点击浏览该文件:测试文件.table
[此贴子已经被作者于2009-4-8 13:41:17编辑过]

你的查询语句有紫色的部分为:ID in (2009111,2009114,2009121),但我看你的事例中Id列是字符型,如果是字符型,应改为 ID in ('2009111','2009114','2009121'),不知是否是这儿的错误。

6楼
菜鸟foxtable 发表于:2009/4/8 13:58:00
图片点击可在新窗口打开查看怪事了....

原来项目文件里的ID in (....  ... ) 括号内是通过复合列表框生成的字符串,生成如(001,002,003)的字符串,如果没跨表查询就没有提示错误.....一加上跨表查询就出错...为什么?

原项目用的是外部SQL数据表

难道不跨表查询用(001,002,003)
跨表就用('001','002','003')???
[此贴子已经被作者于2009-4-8 14:01:00编辑过]
7楼
狐狸爸爸 发表于:2009/4/8 14:00:00
看4楼
8楼
菜鸟foxtable 发表于:2009/4/8 14:02:00
为何不跨表查询又正常呢?同样的代码生成ID 字符串...

原查询代码为
select ID,项目,规格,单价 from {表A} where 日期 is null and ID in (001,005,008)

我回单位再测试一下....图片点击可在新窗口打开查看
[此贴子已经被作者于2009-4-8 14:04:09编辑过]
9楼
狐狸爸爸 发表于:2009/4/8 14:05:00
1、两个表都有ID列,自然要明确是哪一个表的,单表没有这个问题。
2、字符值应该用单引号括起来

所以:

{表A}.ID in ('001','005','008')
10楼
cpayinyuan 发表于:2009/4/8 14:07:00
以下是引用狐狸爸爸在2009-4-8 13:46:00的发言:
select 床位,姓名,{表A}.ID,项目,规格,单价 from {表A} inner join {表B} on {表A}.ID = {表B}.ID where 日期 is null and {表A}.ID in ('001','005','008') order by 床位

不仅仅是引号的问题,最关键的区别是在 Where 日期 is Null and {表A}.Id in ('001','005','008') ……    ,ID前面加了一个{表A},原因贺老师已经在前面讲清楚了。

[此贴子已经被作者于2009-4-8 14:10:16编辑过]
共11 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04419 s, 4 queries.