访问条件不等于零
Access criteria not equal to zero
我在使用下面的查询过滤掉零字段时遇到问题。许多在“3 年平均值”或 "Comp Usage" 字段中为零的记录仍包含在结果中。
删除“<>0”或 "Is Not Null" 条件不会改变输出 table。 Access 正在生成以下 SQL:
SELECT
[active plant parts made from dept produced components usage].assembly_item_no,
[active plant parts made from dept produced components usage].component_item_no,
[active plant parts made from dept produced components usage].component_qty,
[active plant parts made from dept produced components usage].[3 yr average],
[active plant parts made from dept produced components usage].[comp usage],
noetix_sys_invus_category_all.[a$cat$item_type]
INTO [department component usage and assembly type]
FROM [active plant parts made from dept produced components usage]
INNER JOIN noetix_sys_invus_category_all
ON
[active plant parts made from dept produced components usage].assembly_item_no =
noetix_sys_invus_category_all.[a$item$item_number]
WHERE ( ( (
[active plant parts made from dept produced components usage].[3 yr average]
)
<> 0 )
AND ( (
[active plant parts made from dept produced components usage].[comp usage] )
<> 0 )
AND ( ( noetix_sys_invus_category_all. [a$cat$item_type] ) = "aft" ) )
OR ( ( (
[active plant parts made from dept produced components usage].[3 yr average]
)
IS NOT NULL )
AND ( (
[active plant parts made from dept produced components usage].[comp usage]
)
IS NOT NULL )
AND ( ( noetix_sys_invus_category_all.[a$cat$item_type] ) = "aft+" ) )
OR (( ( noetix_sys_invus_category_all.[a$cat$item_type] ) = "oem" ))
OR (( ( noetix_sys_invus_category_all.[a$cat$item_type] ) = "oem+" ))
ORDER BY
[active plant parts made from dept produced components usage].[3 yr average] DESC,
[active plant parts made from dept produced components usage].[comp usage] DESC,
noetix_sys_invus_category_all.[a$cat$item_type];
感谢您的帮助。
读取条件行是一个 AND 语句,因此,例如,Is Not Null
仅适用于 "AFT+"。
使用单行和 And(或 Or)关键字。示例(在单个单元格中键入):
<>0 And Is Not Null
"X" Or "Y" Or "Z"
或对每个 "X"、"Y" 等行重复第一个表达式。
也许可以使用 in
和 nz
进行简化。我说也许是因为我不完全确定你想要的预期结果是什么。
WHERE nz([Active Plant Parts Made From Dept Produced Components Usage].[3 Yr Average],0)<>0
AND nz([Active Plant Parts Made From Dept Produced Components Usage].[Comp Usage],0)<>0
AND NOETIX_SYS_INVUS_CATEGORY_ALL.[A$CAT$ITEM_TYPE] in("AFT","AFT+","OEM","OEM+")
Or 语句通常对引擎进行评估很昂贵;因此,如果我们可以使用 IN 一次进行多项评估,我们将获得性能优势。
我们使用 nz
将空值转换为 0,然后将其从结果中排除。因此,在 3 年平均值或补偿使用量均为空或零的情况下,该记录将被排除。
我在使用下面的查询过滤掉零字段时遇到问题。许多在“3 年平均值”或 "Comp Usage" 字段中为零的记录仍包含在结果中。
删除“<>0”或 "Is Not Null" 条件不会改变输出 table。 Access 正在生成以下 SQL:
SELECT
[active plant parts made from dept produced components usage].assembly_item_no,
[active plant parts made from dept produced components usage].component_item_no,
[active plant parts made from dept produced components usage].component_qty,
[active plant parts made from dept produced components usage].[3 yr average],
[active plant parts made from dept produced components usage].[comp usage],
noetix_sys_invus_category_all.[a$cat$item_type]
INTO [department component usage and assembly type]
FROM [active plant parts made from dept produced components usage]
INNER JOIN noetix_sys_invus_category_all
ON
[active plant parts made from dept produced components usage].assembly_item_no =
noetix_sys_invus_category_all.[a$item$item_number]
WHERE ( ( (
[active plant parts made from dept produced components usage].[3 yr average]
)
<> 0 )
AND ( (
[active plant parts made from dept produced components usage].[comp usage] )
<> 0 )
AND ( ( noetix_sys_invus_category_all. [a$cat$item_type] ) = "aft" ) )
OR ( ( (
[active plant parts made from dept produced components usage].[3 yr average]
)
IS NOT NULL )
AND ( (
[active plant parts made from dept produced components usage].[comp usage]
)
IS NOT NULL )
AND ( ( noetix_sys_invus_category_all.[a$cat$item_type] ) = "aft+" ) )
OR (( ( noetix_sys_invus_category_all.[a$cat$item_type] ) = "oem" ))
OR (( ( noetix_sys_invus_category_all.[a$cat$item_type] ) = "oem+" ))
ORDER BY
[active plant parts made from dept produced components usage].[3 yr average] DESC,
[active plant parts made from dept produced components usage].[comp usage] DESC,
noetix_sys_invus_category_all.[a$cat$item_type];
感谢您的帮助。
读取条件行是一个 AND 语句,因此,例如,Is Not Null
仅适用于 "AFT+"。
使用单行和 And(或 Or)关键字。示例(在单个单元格中键入):
<>0 And Is Not Null
"X" Or "Y" Or "Z"
或对每个 "X"、"Y" 等行重复第一个表达式。
也许可以使用 in
和 nz
进行简化。我说也许是因为我不完全确定你想要的预期结果是什么。
WHERE nz([Active Plant Parts Made From Dept Produced Components Usage].[3 Yr Average],0)<>0
AND nz([Active Plant Parts Made From Dept Produced Components Usage].[Comp Usage],0)<>0
AND NOETIX_SYS_INVUS_CATEGORY_ALL.[A$CAT$ITEM_TYPE] in("AFT","AFT+","OEM","OEM+")
Or 语句通常对引擎进行评估很昂贵;因此,如果我们可以使用 IN 一次进行多项评估,我们将获得性能优势。
我们使用 nz
将空值转换为 0,然后将其从结果中排除。因此,在 3 年平均值或补偿使用量均为空或零的情况下,该记录将被排除。