Access交流中心

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

SQL联合查询,查阅向导显示ID值

叶问  发表于:2014-01-13 11:05:09  
复制

有A,B两表,其中都有x,y字段,x字段为主键。其中A表中字段y为文本,B表中y字段为查阅向导(查阅向导依据表C建立,C中仅有自动编号的id字段及y字段)

建立A与B表的SQL联合查询。

SELECT A.x,A.y
FROM A;
UNION SELECT B.x,B.y
FROM B;
最终运行结果x字段无问题,y字段来源于表A的无问题,表B的为表C的ID值。怎样使来源与表B的字段y显示对应文本值?

 

Top
煮江品茶 发表于:2014-01-13 11:31:38
UNION SELECT B.x,Dlookup("y","C","id=" & Cid) as y
FROM B;

叶问 发表于:2014-01-13 14:54:32

按您的方式写入运行后需要输入Cid的参数值,而C的值不止一个,请问如何解决? 谢谢!C表如下:

ID     y

1     张三

2     李四

3     赵五

…………



煮江品茶 发表于:2014-01-13 15:15:07
不是已经处理完成了吗?

叶问 发表于:2014-01-14 15:30:28

没有完成啊。。建立的联合查询结果为

x          y                           其中A表          x            y                          B表          x          y

一一     王泽                                           一一       王泽                                   三二      赵五

三二     3

……

第一行记录来源于表A,A中y字段是文本查询出的值无问题,第二行来源于表B是查阅向导字段,基于以C表,我想让查询显示y字段赵五而不是3。

按您的方式修改运行后会弹出一个让我输入Cid参数的窗口,这个参数怎么输入?如果我输一个id比如3,那所有的不论本来是ID是几的值都会显示ID为3所对应的字段,即赵五。

请问如何解决?谢谢



zhaoyoulong 发表于:2014-01-14 15:39:34
没有讲清楚你的想法

煮江品茶 发表于:2014-01-14 16:27:51

Dlookup("y","C","id=" & Cid)查出来的不就是张三、李四、王二麻子吗?


假设B表中有一个字段为Cid,该字段为C表id的外键,则
SELECT x,y
FROM A
UNION SELECT x,Dlookup("y","C","id=" & Cid) as y
FROM B;

如果你B表中的y就是我说的Cid,把这个查询修改为:

SELECT x,y
FROM A
UNION SELECT x,Dlookup("y","C","id=" & B.y) as y
FROM B;

不就完事了吗?



叶问 发表于:2014-01-15 17:52:43

我试着运行总是出错,可能是我的表述能力比较差。。。谢谢您的耐心指教,我发个原问题附件,您看看是不是比较清楚。问题例



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