2013-10-12 3 views
0

Продолжение Combine Access fields into one field given two queriesУдалите излишние доступа поле клетки

У меня есть ниже таблицу с тремя основными направлениями Name_2010, Name_2011 и Name_2012, и они должны быть интегрированы в Name_Final.

coven

Я использовал запрос ниже, чтобы выбрать только конкретный элемент из трех полей в строку, но в данный момент он не работает надлежащим образом, поскольку он не признает избыточные клетки.

SELECT 
    IIf(Name_2010 In (Name_2011, Name_2012), '', Name_2010) 
    AS N1, 
    IIf(Name_2011 In (Name_2010, Name_2012), '', Name_2011) 
    AS N2, 
    IIf(Name_2012 In (Name_2010, Name_2011), '', Name_2012) 
    AS N3 
    FROM Table1; 

Что запрос я должен использовать для достижения Name_Final дал мой текущий стол?

+0

Будете ли вы добавлять поля в таблицу «1» с течением времени: 'Name_2013'; 'Name_2014'; и так далее? – HansUp

+0

Да, сэр. Пока у меня есть только эти нерекурсивные запросы, которые помогут мне. –

ответ

0
SELECT ID, N1 & 
    IIf(N2 <> N1, N2, '') & 
    IIf((N3 <> N2) And (N3 <> N1), N3, '') AS Name_Final 
FROM 
    (SELECT ID, Nz(Name_2010) AS N1, Nz(Name_2011) AS N2, Nz(Name_2012) AS N3 
    FROM Table1) AS T 
ORDER BY ID; 

Предложение ORDER BY это за то, что он говорит, а не быть частью расчета «Name_Final».

+0

Огромное вам спасибо за помощь! –

Смежные вопросы