在SQL MS Access 2007中动态更改列数

时间:2017-12-03 22:16:44

标签: sql access-vba ms-access-2007 dynamic-sql

我是SQL初学者并且对MS Access 2007感到担忧我试图将多个列添加到一起但是查询中包含的列数将始终改变。例如,我必须计算年初至今预算,每次用户执行查询,将输入新日期,我有Month1,Month2,Month3 ... Month12列。我很困惑我如何决定运行时间我将在查询中包含多少列。 如果用户进入8/31/2017我必须选择Month1,Month2,Month3,Month4,Month5(他们是财政年度月)

enter image description here

1 个答案:

答案 0 :(得分:0)

这是一个可怕的想法!!像这样存储你的日期。

enter image description here

QryYTD: 代码:

SELECT
    Sum(qryNet.Net) AS YTD
FROM
   qryNet
WHERE
   (((qryNet.OrderDate) Between DateSerial(Year(Date()),1,1) AND   Date()))

QryMTD: 代码:

SELECT
    Sum(qryNet.Net) AS MTD
FROM
   qryNet
WHERE
   (((qryNet.OrderDate) Between DateSerial(Year(Date()),Month(Date()),1) 
AND
   Date()));

QryWTD: 代码:

SELECT
    Sum(qryNet.Net) AS WTD
FROM
   qryNet
WHERE
   (((qryNet.OrderDate) Between DateAdd("d",-Weekday(Date()),Date()+2) 
AND
   Date()));

如上所述,qryWTD使用当前星期一作为开始日期。

一旦你有三个工作,你可以通过添加每个先前的查询并指定YTD,MTD和WTD作为查询的字段来创建包装器查询。