查询转换和数据透视

时间:2010-12-02 11:35:23

标签: sql ms-access ms-access-2007

我有一个非常微妙的问题,直到现在我都无法解决。 让我们举个例子来更好地解释这个问题:

我有一个表 Person : 使用字段:ID,Name,Option1,Option1_Value,Option2,Option2_Value,Option3,Option3_Value

我想要一个显示以下内容的查询:

ID      Name      Reason
1       Clark     Option1 doesn't match, Option2 doesn't match
2       Stefan    Option3 doesn't match
3       Sandra    (No errors: well just ignore this line)
4       Steven    Option2 doesn't match

所以必须做的是:对于每个选项字段,进行检查(将要读取的查询并使用外部表比较option_value)然后打印不匹配但在一个字段中的选项用作错误输出字段。

是否可以使用Transform和Pivot实现这一目标? 如果是的话,请您提供一些技巧并告知我应该如何使用它们? 如果没有,有替代方案吗?或者也许我可以做VBA方面的事情?

先谢谢你们 Miloud

1 个答案:

答案 0 :(得分:1)

您的表已连续有三个选项,那么如何:

SELECT ID, Name, 
     IIf(Option1_Value<>"Something","Option1 dosn't match",
        IIf (Option2_Value<>"Something","Option2 dosn't match",
           IIf( Option3_Value<>"Something","Option3 dosn't match","No errors")))
     As Reason
FROM Table

从您的帖子中不清楚选项与哪些选项不匹配,也不清楚Option和Option_Value之间的区别是什么。