Office中国论坛/Access中国论坛

标题: 如何动态生成年,月,日查询 [打印本页]

作者: winner    时间: 2006-9-29 01:25
标题: 如何动态生成年,月,日查询
[attach]20627[/attach]
[attach]20628[/attach]
各位:

     附件的图是我最终想做成的查询.现在我只是用静态的方法写成的,如何动态生成这个查询呢?例如我选择2006-10-15到2006-10-21,则查询变为:

产品编码  区域编码 2006-10-15 中间略  2006-10-21    10月第4周   11月第1周   2006-12    2007-1

解释一下,在周的表里,2006101521表示2006-10-15到2006-10-21,即10月第3周;2006102200表示2006-10-22到月末,即10月第4周,凡是月末最后2位是00.

请问应该如何实现这一功能呢?请大家教教我,谢谢!

[此贴子已经被作者于2006-9-28 17:25:30编辑过]


作者: andymark    时间: 2006-9-29 05:30
TRANSFORM Sum(T_SalesPlanByDate.iQuantity) AS Quantity
SELECT T_SalesPlanByDate.cInvAddCode
FROM T_SalesPlanByDate
WHERE T_SalesPlanByDate.dDate Between #10/15/2006# And #10/21/2006#
GROUP BY T_SalesPlanByDate.cInvAddCode
PIVOT T_SalesPlanByDate.dDate;

作者: winner    时间: 2006-9-29 17:41
andymark:您写的代码只是日期的交叉表查询,我想要的是日期+周次+月份的,要在同一个表显示,我不知道要如何写查询条件才能动态筛选出来.

还有一个问题,现在3个表里的产品是不完全的,例如有的产品只录入日计划,没有周计划和月计划,如何能综合3个表的所有产品(在选定时间段内的),这个我也解决不了!

[此贴子已经被作者于2006-9-29 9:42:36编辑过]


作者: andymark    时间: 2006-9-29 18:15
把具体结果贴出来


作者: winner    时间: 2006-9-29 18:19
就在第一楼那里有图片,我还做的一个查询,是写死了的,我想换成动态可选的.
作者: 浩雨    时间: 2006-9-29 20:45
看看这有用吗?

[attach]20648[/attach]

作者: winner    时间: 2006-9-29 22:27
谢谢!

1.发现有1个问题:交叉表中出现了1-10月的数,还有2006100814的周次,我想这些不显示出来.我想显示:选定一周的日期(如2006-10-8到2006-10-14),出现这周的日计划+下2周的周计划+下2个月的月计划(详细看上图).

2.重新描述要实现的表格,请看附件

[attach]20653[/attach]

一共要有3个月的计划.

[此贴子已经被作者于2006-9-29 14:54:46编辑过]


作者: 浩雨    时间: 2006-9-30 00:51
再看看行不行?但总觉得有点别扭。其实周也罢月也罢,都可以通过具体的日期转换而得到的。我认为没必要用三个表来分别保存。对于一个计划在三个表或二个表中保存,假如数据不同,这就使人迷茫了!

[attach]20661[/attach]


[此贴子已经被作者于2006-9-29 16:51:39编辑过]


作者: andymark    时间: 2006-9-30 01:04
以下是引用浩雨在2006-9-29 16:51:00的发言:


再看看行不行?但总觉得有点别扭。其实周也罢月也罢,都可以通过具体的日期转换而得到的。我认为没必要用三个表来分别保存。对于一个计划在三个表或二个表中保存,假如数据不同,这就使人迷茫了!

      完全赞同
作者: winner    时间: 2006-9-30 01:12
谢谢!先收下再研究研究.

我这样设计的原因是,例如产品A,它在10月份没有日计划,周计划,但12月的时候会有月计划,这样就没办法用日期来转化啦.如果大家有什么好的设计表的方法,可以教教我吗?

补充说明一下:例如今天是9.29,我只能录入10.1--10.7每日的计划,和10月第2,3,4周的周计划,因为不知道10.1--10.7的具体销售情况,所以10月第2周是不可能细分到具体的日计划,要到10月第一周的周三左右,10.8--10.15的日计划才能出来,那就更不用说12月份的日计划了,如果是这种情况,请问要如何设计表格呢?

[此贴子已经被作者于2006-9-29 17:24:03编辑过]


作者: 浩雨    时间: 2006-9-30 10:28
在发给你例中,三个的表日期标识都作了转换,觉得有点多余。建议你在日计划表中增加一个字段“计划类别”,内容为“日计划”、“周计划”、“月计划”。这样便于查询。至于日期可以写个接近的日期。按你现在三表的状态,不知在实施“日计划”后,对原来的“周计划”或“月计划”是怎么处理的,是删了还是保留着?
作者: winner    时间: 2006-9-30 17:29
周计划,月计划是继续保留着.我先试试合并3表




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3