Access交流中心

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

[5分]两个以上条件的查询如何做?

Bio_hebei  发表于:2009-04-29 00:40:24  
复制

表一:商品表

      ID  货品  区域 

      1    A     山东

      2    B     山西

      3    A     河南

      4    A     北京

      5    B     广东

      ......

 

表二:单价表

      ID   商品  单价

      1     A     80

      2     B     10

 

表三:个别区域单价表

      ID   货品   区域   单价

      01    A     山东    55

      02    B     山西     6

      03    A     河南    60

 

问题:如何建立查询,得到所有对应商品及区域的单价?(查询: 商品 区域  单价)

 

Top
曹光耀 发表于:2009-04-29 01:16:30
Bio_hebei 发表于:2009-04-29 03:18:38

谢谢,但我想要的结果是

   单价只一个字段显示(而不是单价和区域单价两个字段),有特别规定的按特别规定,没有规定的按正常价,可以么?

   (之所以这么做,是为下一步的计算方便)



Bio_hebei 发表于:2009-04-29 03:23:44

是不是再加上个联合查询啊?分开把有规定的和没规定的再分别做查询,然后再来个联合查询?

只是这样查询是不是太多了些?

有没有什么好办法?



豆豆 发表于:2009-04-29 08:19:46
SELECT tt.货品, tt.区域, IIf(IsNull([区域单价]),[单价],[区域单价]) AS 最终单价
FROM (SELECT 表1.货品, 表1.区域, 表2.单价
FROM 表1 INNER JOIN 表2 ON 表1.货品 = 表2.货品) as tt LEFT JOIN 表3 ON tt.区域 = 表3.区域;


access爱好者 发表于:2009-04-29 11:51:24
是不是这样?点击下载此附件

Bio_hebei 发表于:2009-04-29 12:00:33

师座:

    太感谢了!

    sql原来可以这样套起来!

    你不升官,我抗义!!!



Bio_hebei 发表于:2009-04-29 12:38:38

版主给我的答案很完美,简洁易懂

 

zdm2003  感谢你!!!



曹光耀 发表于:2009-04-29 12:39:06
SELECT 查询1.货品, 查询1.区域, IIf([区域单价]>0,[区域单价],[查询1].[单价]) AS 单价
FROM 查询1 LEFT JOIN 表3 ON 查询1.区域 = 表3.区域;
点击下载此附件

Bio_hebei 发表于:2009-04-29 12:44:22
师座的查询把查询1用代码代替了,理解上有点难度,但一个查询搞定,再次感谢!

Bio_hebei 发表于:2009-05-02 08:43:21

几个答案都发现错误:

     表一中同一区域有不同品种时,查询结果是不对的(都按其中一个商品的特殊单价出现了)

更改为

SELECT tt.货品, tt.区域, IIf(IsNull([区域单价]),[单价],[区域单价]) AS 最终单价
FROM (SELECT 表1.货品, 表1.区域, 表2.单价 FROM 表1 INNER JOIN 表2 ON 表1.货品=表2.货品)  AS tt LEFT JOIN 表3 ON (tt.货品 = 表3.货品) AND (tt.区域 = 表3.区域);

结果似乎才对,我的更改对么?



access爱好者 发表于:2009-05-02 09:31:14

再看看,这样可以不?

点击下载此附件

Bio_hebei 发表于:2009-05-02 12:23:07

还是有问题,而我的好象是对的,我把表一中数据增加了一个,把表三中无用的数据删除后,似乎看得更清楚

点击下载此附件

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