Access交流中心

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

[5分]关于选择查询请教!

李妮  发表于:2009-09-02 10:30:17  
复制

大家好!

   请问如果实现该查询功能,B表为所需得到的结果,谢谢大家,具体问题在附件,谢谢!

点击下载此附件

 

Top
点燃一支烟 发表于:2009-09-02 10:54:13

1、你先得解释一下你的“周别”的具体定义是什么?因为不是很清楚:是否以每个月的1号到7号算作第一周并以此类推,还是只算工作日的,不明白你是怎么推算周别的,你可以拿一个月示例说明一下;

2、17号与22、23是按什么规律变成了同是第四周啊?



点燃一支烟 发表于:2009-09-02 10:57:06
3、如果原料相同且日期在同一周别,那么分的数据就显示1个1.这个1是随便显示的吗?是显示在产品5对应的格子,还是6呢,有要求吗?

李妮 发表于:2009-09-02 11:24:07
谢谢邓老师的热心帮助,不好意思,没有正确解释下,周别是按照日历来算的,10月1号是星期4算第一周 10月5号是星期1算第二周,10月12号是第三周的星期1,10月17号是第三周的星期六,不好意思,12和17是同一周,22和23是同一周,是按照这样来算的,1显示在第5格或第6格没有要求!点击下载此附件

李妮 发表于:2009-09-02 11:24:56
修改了A表的数据,得到的结果和B表数据一样,谢谢老师!

点燃一支烟 发表于:2009-09-02 14:54:29

1、设计一查询,取名“查询2”;

2、在查询2的sql视图里面写如下语句:

 

SELECT A.序号, A.产品, A.产品等级, A.原料, A.数量, A.日期, DatePart("ww",[日期],2) AS 周别, IIf(DCount("序号","查询2","[原料]='" & [原料] & "' and [周别]= " & [周别] & "")=1,[分配],IIf([序号]=DMax("序号","查询2","[原料]='" & [原料] & "' and [周别]= " & [周别] & ""),[分配],"")) AS 调整后的分配
FROM A
ORDER BY A.序号;

 

3、在查询2的数据表视图里隐藏列“周别”

 

4、调整后分配字段就是你需要的,这里分配的“值”显示在 原料相同且日期在同一周别时 最后一条记录对应的格子



点燃一支烟 发表于:2009-09-02 15:06:58

5、这里分配的“值”如果要显示在 原料相同且日期在同一周别时 第一条记录对应的格子,则:

SELECT A.序号, A.产品, A.产品等级, A.原料, A.数量, A.日期, DatePart("ww",[日期],2) AS 周别, IIf(DCount("序号","查询2","[原料]='" & [原料] & "' and [周别]= " & [周别] & "")=1,[分配],IIf([序号]=DMin("序号","查询2","[原料]='" & [原料] & "' and [周别]= " & [周别] & ""),[分配],"")) AS 调整后的分配
FROM A
ORDER BY A.序号;



点燃一支烟 发表于:2009-09-02 15:21:31

这样好些:

SELECT A.序号, A.产品, A.产品等级, A.原料, A.数量, A.日期, DatePart("ww",[日期],2) AS 周别, IIf(DCount("序号","查询2","[原料]='" & [原料] & "' and [周别]= " & [周别] & "")=1,"1",IIf([序号]=DMax("序号","查询2","[原料]='" & [原料] & "' and [周别]= " & [周别] & ""),"1","")) AS 调整后的分配, A.分配
FROM A
ORDER BY A.序号;

 

 

SELECT A.序号, A.产品, A.产品等级, A.原料, A.数量, A.日期, DatePart("ww",[日期],2) AS 周别, IIf(DCount("序号","查询2","[原料]='" & [原料] & "' and [周别]= " & [周别] & "")=1,"1",IIf([序号]=DMin("序号","查询2","[原料]='" & [原料] & "' and [周别]= " & [周别] & ""),"1","")) AS 调整后的分配, A.分配
FROM A
ORDER BY A.序号;



李妮 发表于:2009-09-02 15:27:49

谢谢邓老师,测试过程中发现调整后的分配数据居然显示为#错误,周别只显示1周,2周,3周,4周,datepart("WW",[日期],2)显示的18周,50周这样.谢谢老师!



点燃一支烟 发表于:2009-09-02 15:49:54

用7楼的

 



点燃一支烟 发表于:2009-09-02 15:54:21
周别你不显示就是,一定要显示吗?“b”表也没说要显示周别

点燃一支烟 发表于:2009-09-02 15:55:26
datepart("WW",[日期],2)返回的是从一年的元旦算起第几周

李妮 发表于:2009-09-02 16:01:46

谢谢邓老师!7楼的测试成功了,刚没看到,再次谢谢,周别设置为第几周,几周这个我可以自己解决,谢谢老师!



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