我使用用户定义的SQL语句从连接到Microsoft Access的数据库导入数据,称为WinLIMS。我正在尝试计算容器编号的数量,并且仅显示具有> 6
计数的记录(即,计算具有相同容器编号且仅显示大于6的容器编号计数的记录) )。
我不想包含空值,我尝试将count
函数移到Where
子句并使用HAVING
子句(这给了我一个"错误)预期的参数太少...> 1"对于尝试的第一个解决方案而且在TRANSFORM语句中出现"错误"对于尝试的第二个解决方案)。
代码从数据库WinLIMS™调用项目,然后通过Access™引用,但我被告知SQL代码(通用)将起作用。
由于服务器速度慢,我们使用TRANSFORM
语句来规范化我们的数据。 [REG_ON]
是DATE
,[CONTAINER_NO]
以及[CONTAINER_NO_FIXED]
是文字值:
TRANSFORM Min([ORESULT])
SELECT [REG_ON], [COMMINGLED_LOT], [MKT_SYNONYM], [CONTAINER_NO],
这是我删除连字符和额外空格等内容的代码部分,因为它们仍应计为具有或不包含特殊字符值的相同容器,例如[CONTAINER_NO]="T-164"
和[CONTAINER_NO]="T164"
< / p>
REPLACE(REPLACE(REPLACE(REPLACE
([CONTAINER_NO]," ","")," ",""),"_",""),"51400","51A400") AS
[CONTAINER_NO_FIXED], COUNT([CONTAINER_NO_FIXED]) AS
[CONTAINER_COUNT],
FROM [dbo.V_NWA_RESULT]
WHERE [REG_ON]>=DATE () - 360 AND [MKT_SYNONYM] IN
("6860", ""4459")
GROUP BY [REG_ON], [COMMINGLED_LOT], [MKT_SYNONYM], [CONTAINER_NO],
HAVING [CONTAINER_COUNT] > 6 PIVOT [PA_NAME] IN ("Aluminum (Al)",
"Antimony (Sb)", "Arsenic (As)", "Barium (Ba)",
.... //This is done to normalize data since our server is slow
总之,我希望此列表排除容器51A400
,51A200
,GC1
和51A988
(注意 - 使用的数据片段,这只会如果我使用大于1而不是6,则为真,但这只是为了澄清)。
由于