我有20个"数字"字段。如果为正,则它们的输入为 1,如果为负,则为 0,如果对此特定记录无效,则留空 (null(。我正在尝试创建一个报告,该报告将返回其自己行上的每个字段,说明"负橙色"或正橙色",或者将橙色完全排除在报告之外(并继续剩余的 19 个字段,具体取决于每个输入的内容(如果特定字段实际上是空白的(null(。 这是我在报告详细信息部分的一列中需要的示例:
Negative CBC
Negative Vitamin D
Negative Vitamin E
Negative Vitamin A
Positive Vitamin B-12
有20种可能的物质可能会被测试。并非每种物质的记录都进行了测试。我希望报告只显示已测试的内容,在最终报告中不留空格。
您没有提供原始数据和实际名称的示例,因此请酌情替换。
SELECT ID, Field1 AS Data, "Test1" AS TestName FROM tablename
UNION SELECT ID, Field2, "Test2" FROM tablename
. . .
UNION SELECT ID, Field20, "Test20" FROM tablename;
包含任意数量的字段。
构造的字段Data
可以是每个 SELECT 行中的计算,以将数字转换为文本。由于您似乎没有使用"是/否"字段:
IIf([Field1]=0, "Negative", IIf([Field1]=1, "Positive", Null)) + " Orange"
或者在报表的文本框中使用 UNION 查询作为记录源:
IIf([Data]=0, "Negative", IIf([Data]=1, "Positive", Null)) & " Orange"
使用 UNION 查询作为报表的记录源,并应用筛选器删除空记录。
SELECT * FROM UnionQuery WHERE NOT Data IS NULL;