我正在尝试使用SQL查询解决问题,其中我有下一列: 项目编号和CROSS_REFFERENCE。 ITEM NUMBER可以有多个CROSS_REFFERENCE值,我需要的是计算它们,我可以通过分组和按表达式计算。但我需要的另一件事是声明,如果ITEM NUMBER有多个CROSS_REFFERENCE而不是返回MULTI,否则返回与ITEM NUMBER绑定的单个CROSS_REFFERENCE值。 我试图将这个表达用作新的coulmn:
MFG: IIf(Count([CROSS_REFERENCE])>1,"MULTI",[CROSS_REFERENCE])
但是当我的结果返回时,我没有使用ether MULTI获得ITEM NUMBER的唯一列表,或CROSS_REFERENCE的值。
知道我做错了什么?
SELECT
tbl_MFG_XREF.[ITEM NUMBER],
tbl_MFG_XREF.CROSS_REFERENCE,
Count(tbl_MFG_XREF.CROSS_REFERENCE) AS CountOfCROSS_REFERENCE,
IIf(Count([CROSS_REFERENCE])>1,"MULTI",[CROSS_REFERENCE]) AS MFG
FROM
tbl_MFG_XREF
GROUP BY
tbl_MFG_XREF.[ITEM NUMBER], tbl_MFG_XREF.CROSS_REFERENCE;
答案 0 :(得分:0)
您需要一个基本查询:
SELECT
[ITEM NUMBER],
Count(CROSS_REFERENCE) AS CountOfCROSS_REFERENCE,
First(CROSS_REFERENCE) AS FirstCROSS_REFERENCE
FROM
tbl_MFG_XREF
GROUP BY
tbl_MFG_XREF.[ITEM NUMBER];
您也可以使用Last或Min或Max代替First
。 FirstCROSS_REFERENCE
仅在项目只有一个CROSS_REFERENCE时使用。
将此查询保存为例如qryItemCountCrossref
第二个使用它作为输入的查询,例如
SELECT
[ITEM NUMBER],
CountOfCROSS_REFERENCE,
IIf(CountOfCROSS_REFERENCE > 1, "MULTI", FirstCROSS_REFERENCE) AS MFG
FROM qryItemCountCrossref