Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 突出显示Access交叉表查询中的选择单元格_Sql_Ms Access_Ms Access 2007 - Fatal编程技术网

Sql 突出显示Access交叉表查询中的选择单元格

Sql 突出显示Access交叉表查询中的选择单元格,sql,ms-access,ms-access-2007,Sql,Ms Access,Ms Access 2007,当我运行以下语句时,我得到一个错误:transform语句中的语法错误。 有人能告诉我怎样才能修好它吗 TRANSFORM First([H_Project Calender Concat].[Project ID]) AS [FirstOfProject ID] SELECT [H_Project Calender Concat].Year, [H_Project Calender Concat].Month, [H_Project Calender Concat].Employee FROM

当我运行以下语句时,我得到一个错误:transform语句中的语法错误。 有人能告诉我怎样才能修好它吗

TRANSFORM First([H_Project Calender Concat].[Project ID]) AS [FirstOfProject ID]
SELECT [H_Project Calender Concat].Year, [H_Project Calender Concat].Month, [H_Project Calender Concat].Employee
FROM [H_Project Calender Concat]
GROUP BY [H_Project Calender Concat].Year, [H_Project Calender Concat].Month, [H_Project Calender Concat].Employee
PIVOT [H_Project Calender Concat].Day In IIf([H_Project Calender Concat].Month = 1, (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31), (IIf([H_Project Calender Concat].Month = 2, (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28),(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31)));
它将持续12个月,并且不包含闰年

更新:

我正在尝试创建一个日历,其中显示为特定日期分配的项目ID

示例数据:

Name |   Date    | Project ID
Bill | 1-29-2014 |   P363 
Jack | 2-03-2014 |   P444
...  |    ...    |   ...
Tom  | 3-30-2015 |   P363
当我发布这篇文章时,我原本希望它看起来像这样:

Year | Month | Name | 1 | 2 | ... | 28 |  29  |  30  | 31

2014 |   1   | Bill |   |   | ... |    | P363 |      | 
2014 |   2   | Jack |   |   | ... |    
...  |  ...  | ...  |   |   | ... |    |      |      |
2015 |   3   | Tom  |   |   | ... |    |      | P363
然而,我意识到这没有多大意义。相反,是否有一种方法可以显示上述内容,但突出显示单元格,以显示月份已在这些天结束

示例:[~=高亮显示的正方形]

Year | Month | Name | 1 | 2 | ... | 28 |  29  |  30  | 31

2014 |   1   | Bill |   |   | ... |    | P363 |      | 
2014 |   2   | Jack |   |   | ... |    |~~~~~~|~~~~~~|~~~~~
...  |  ...  | ...  |...|...| ... |... | ...  | ...  | ...
2015 |   3   | Tom  |   |   | ... |    |      | P363 |~~~~~
我目前有以下代码。它成功创建了交叉表查询,并将项目ID放置在正确的日期:

TRANSFORM First([H_Project Calender Concat].[Project ID]) AS [FirstOfProject ID]
SELECT [H_Project Calender Concat].Year, [H_Project Calender Concat].Month, [H_Project Calender Concat].Employee
FROM [H_Project Calender Concat]
GROUP BY [H_Project Calender Concat].Year, [H_Project Calender Concat].Month, [H_Project Calender Concat].Employee
PIVOT [H_Project Calender Concat].Day In (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);

您不能将IIF与IN一起使用。可以在VBA中生成查询。可以转换未选择的字段吗?我甚至不知道你想做什么,但看起来你在计算一个月的天数,在你的IIF声明中没有提到30。因此,即使您可以在SQL字符串中使用IIF,您的逻辑仍然有缺陷。你能重新构造你的问题,给我们期望的最终结果,包括一些样本记录(如果可能的话)、原始表格的布局(也包括一些样本记录)以及你迄今为止尝试过的代码吗?如果我们有这些信息,我们可能会提供帮助。@JohnnyBones很抱歉给您带来困惑。我已经更新了描述。谢谢你的澄清,休斯。这是一个很好的问题,我希望雷莫、汉苏普和/或戈德·汤普森能参与进来。我得仔细考虑一下,看看能不能想出什么办法。