Access交流中心

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

如果实现附件中的查询?

豆豆  发表于:2011-05-10 15:59:54  
复制

利用表一及表二中的信息,表一与表二中的合同号有关系,为一对多的关系,现想做一个如表三内容的查询
要求:1、查询中的“合同号”只显示表一中“合同类型”为“国外设备”的合同号;
      2、查询中其他合同基本信息均从表一中对应;
      3、查询中“付款日期”为表二中对应合同号的最近的付款日期,即最大的日期;
      4、查询中“付款金额”为表二中对应合同号的付款金额之和;
      5、查询中“到货日期”为最近到货的日期,即为最大的日期;
      6、查询中的“最迟装运日期”为表二中对应合同号的最大付款日期对应的最迟装运日期;
      7、查询中的“货物名称”及“备注”为表二中的同一合同号的对应内容的合并
请问第6及第7条要求如何实现?(1-5已实现)

点击下载此附件2007版

 

点击下载此附件2003版

 

Top
茼蒿 发表于:2011-05-10 16:03:36
你的附件呢?

豆豆 发表于:2011-05-10 16:05:22
已将附件补充,谢谢!

茼蒿 发表于:2011-05-10 16:07:00
你的附件是什么格式饿?我解压后打不开

豆豆 发表于:2011-05-10 16:23:56
附件为access2007,是不是您用的是2003版,也没有安装兼容包?

茼蒿 发表于:2011-05-10 16:29:15
哦,我是用2003的,2007兼容包带病毒,我不用的。不好意思帮不了你

豆豆 发表于:2011-05-10 16:30:21

刚在问题中又发了一个2003版本的,看是否可以?



茼蒿 发表于:2011-05-10 16:42:20

要求3和5有冲突,既要取付款日期最大值,又要去到货日期最大值,你怎么知道最近的付款日期对应的一定是最近的到货日期呢?



aslxt 发表于:2011-05-10 22:55:11
要求7可以用一个自定义函数来实现,可以参阅合并记录为字符串的一个函数
http://www.access-cn.com/forum-viewthread-tid-78466-fromuid-102752.html


aslxt 发表于:2011-05-10 23:11:12

要求6:

select distinct * from (SELECT 表2:付款及到货情况.合同号, DLookUp("最迟装运日期","表2:付款及到货情况","合同号='" & [合同号] & "' AND 付款日期=#" & DMax("付款日期","表2:付款及到货情况","合同号='" & [合同号] & "'") & "#") AS 要求6
FROM 表2:付款及到货情况)



豆豆 发表于:2011-05-11 10:58:46

请问楼上,以下是满足1-5要求的代码,如何把第6项要求的代码写进去?

请指教,谢谢!

 

 

SELECT 合同基本信息表.签订日期, 合同基本信息表.合同号, 合同基本信息表.经办人, 合同基本信息表.联系电话, 合同基本信息表.合同内容, 合同基本信息表.合同币种, 合同基本信息表.合同总金额, Max([付款及到货情况表].付款日期) AS 付款日期, Sum([付款及到货情况表].付款金额) AS 付款金额, Max([付款及到货情况表].到货日期) AS 到货日期, Sum([付款及到货情况表].到货金额) AS 到货金额

FROM 合同基本信息表 LEFT JOIN [付款及到货情况表] ON 合同基本信息表.合同号=[付款及到货情况表].合同号
GROUP BY 合同基本信息表.签订日期, 合同基本信息表.合同号, 合同基本信息表.经办人, 合同基本信息表.联系方式, 合同基本信息表.合同内容, 合同基本信息表.合同币种, 合同基本信息表.合同总金额, 合同基本信息表.合同类型
HAVING (((合同基本信息表.合同类型)="国外设备"));



aslxt 发表于:2011-05-11 22:03:52

你上面的查询不是建立在你上传的实例中吧?表名称变化了、字段也变化了?



豆豆 发表于:2011-05-12 08:46:15
是建立在上面的附件上的,当时为了表述方便,就在附件的表名基础上加了表一、表二,上面的代码中没有表一、表二,实际是一个表!

豆豆 发表于:2011-05-12 16:27:44

SELECT a.合同号, a.付款日期, a.最迟装运日期
FROM 表2:付款及到货情况 A where a.付款日期=(select max(付款日期) from 表2:付款及到货情况 where 合同号=a.合同号)

 

要求6是用以上代码实现的,9楼的代码也可以实现,但是换个文件就会出错,找不到原因,提示操作符丢失。

 

要求7是使用8楼所给的网址中的示例做的,可以实现!需要设置一下。

 

要求6和7都是单独做了一个查询,然后在要求1-5的查询中再引用查询6和查询7。最后生成一个总的查询,满足所有要求。但不知道,还有没有简便的方法,请各位指教!



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