2014-01-07 41 views
1

我是新手,有一个简单的问题。 在Microsoft Access中,我有几个带有肯定或否定答案的字段。 我可以将这些字段汇总到一个字段中,该字段包含哪些字段在查询中具有肯定答案?如何将字段汇总到一个字段?

Field1 : positive 
Field2 : negative 
Field3 : negative 
Field4 : positive 

Newfield : Field1, Field4 

回答

1

这是从下面的查询与idField1输出通过Field4存储于命名为YourTable表。

id Field1 Field2 Field3 Field4 NewField 
-- -------- -------- -------- -------- -------------- 
1 positive negative negative positive Field1, Field4 
2 negative positive positive negative Field2, Field3 
3 negative negative negative positive Field4 
4 positive negative negative negative Field1 
SELECT 
    sub.id, 
    sub.Field1, 
    sub.Field2, 
    sub.Field3, 
    sub.Field4, 
    IIf 
     (
      Right(sub.raw_string,2)=', ', 
      Left(sub.raw_string, Len(sub.raw_string) -2), 
      sub.raw_string 
     ) AS NewField 
FROM 
    (
     SELECT 
      y.id, 
      y.Field1, 
      y.Field2, 
      y.Field3, 
      y.Field4, 
       (IIf(y.Field1='positive','Field1',Null) + ', ') 
      & (IIf(y.Field2='positive','Field2',Null) + ', ') 
      & (IIf(y.Field3='positive','Field3',Null) + ', ') 
      & IIf(y.Field4='positive','Field4',Null) 
       AS raw_string 
     FROM YourTable AS y 
    ) AS sub; 
+0

感谢HansUp。这很快,效果很好。你救了我的一天。只是想知道,我有大约20个类似的领域,IIf命令是否会工作,因为我读到它对命令数量或执行时间有限制。或者我必须做一个替代方案。再次感谢 – abdullahgz

+0

我认为嵌套的'IIf'表达式是有限制的,但是这个查询不会嵌套它们,所以这个限制不适用。它应该在延伸到20个领域时仍然有效,但我不知道它是否足够快。 – HansUp

+0

谢谢,我现在明白了,我会试试看 – abdullahgz

相关问题