我是SQL初学者并且对MS Access 2007感到担忧我试图将多个列添加到一起但是查询中包含的列数将始终改变。例如,我必须计算年初至今预算,每次用户执行查询,将输入新日期,我有Month1,Month2,Month3 ... Month12列。我很困惑我如何决定运行时间我将在查询中包含多少列。 如果用户进入8/31/2017我必须选择Month1,Month2,Month3,Month4,Month5(他们是财政年度月)
答案 0 :(得分:0)
这是一个可怕的想法!!像这样存储你的日期。
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作为查询的字段来创建包装器查询。