2013-06-03 3 views
0
SELECT Campaign, Prem1Item, Prem1Qty, Prem1Drop, Prem2Item, Prem2Qty, Prem2Drop, Prem3Item, Prem3Qty, Prem3Drop, Prem4Item, Prem4Qty, Prem4Drop, Prem5Item, Prem5Qty, Prem5Drop, Prem10ItemPkging, AckLtr1TypeCode, AckLtr10ItemPkging, ContactID 
    FROM [TU FAR Before VB] 
UNION ALL 
SELECT Campaign, Prem6Item, Prem6Qty, Prem6Drop, Prem7Item, Prem7Qty, Prem7Drop, Prem8Item, Prem8Qty, Prem8Drop, Prem9Item, Prem9Qty, Prem9Drop, NULL, NULL, NULL, Prem10ItemPkging, NULL, AckLtr10ItemPkging, ContactID 
FROM [TU FAR Before VB] 
WHERE NOT 
(
    (Prem6Item IS NULL) AND (Prem7Item IS NULL) AND (Prem8Item IS NULL) 
    AND (Prem9Item IS NULL) 
); 

В приведенном выше коде все прекрасно работает, я просто нужно добавить поле в таблицу под названием Continued, которая равна "Y" для всех записей, которые были созданы, потому что это было больше, чем 5 пунктов и "N" для всех записей, имеющих первые 5 элементов.Access/SQL Union

Я хотел знать, есть ли способ сделать это без необходимости полностью создавать новый стол?

Заранее благодарим за помощь в этом вопросе.

Chuck

+0

это немного неясно, что вы просите , Какова структура таблицы для таблицы 'continue'? Нужно ли вообще «объединение всех»? похоже, что ваш запрос может быть выполнен в одном выражении SQL. – ChrisCamp

+0

Я думал, что могу сделать это, добавив его в другую таблицу и проверить дубликат ContactID, но моя попытка с этим не удалась. Это то, что я имел в виду, создавая новую таблицу. – Chuck

+0

Мне нужно продолжение поля, когда я экспортирую в другую программу, которая может распознать только 5 продуктов. Если у нас есть более того, у него есть поле «продолжения», чтобы сообщить ему, что следующие 5 элементов являются продолжением предыдущего порядка. – Chuck

ответ

2

Вы можете просто добавить жёстко прописанный столбец в каждом из запросов:

SELECT ...., 
     'N' AS Continued 
FROM ... 
UNION ALL 
SELECT ...., 
     'Y' AS Continued 
FROM ... 

Таким образом, ваш полный запрос станет:

SELECT Campaign, 
     Prem1Item, 
     Prem1Qty, 
     Prem1Drop, 
     Prem2Item, 
     Prem2Qty, 
     Prem2Drop, 
     Prem3Item, 
     Prem3Qty, 
     Prem3Drop, 
     Prem4Item, 
     Prem4Qty, 
     Prem4Drop, 
     Prem5Item, 
     Prem5Qty, 
     Prem5Drop, 
     Prem10ItemPkging, 
     AckLtr1TypeCode, 
     AckLtr10ItemPkging, 
     ContactID, 
     'N' [Continued] 
FROM [TU FAR Before VB] 
UNION ALL 
SELECT Campaign, 
     Prem6Item, 
     Prem6Qty, 
     Prem6Drop, 
     Prem7Item, 
     Prem7Qty, 
     Prem7Drop, 
     Prem8Item, 
     Prem8Qty, 
     Prem8Drop, 
     Prem9Item, 
     Prem9Qty, 
     Prem9Drop, 
     NULL, 
     NULL, 
     NULL, 
     Prem10ItemPkging, 
     NULL, 
     AckLtr10ItemPkging, 
     ContactID, 
     'Y' [Continued] 
FROM [TU FAR Before VB] 
WHERE NOT 
     (  Prem6Item IS NULL 
      AND Prem7Item IS NULL 
      AND Prem8Item IS NULL 
      AND Prem9Item IS NULL 
     ); 
+0

Wow! Огромное спасибо. Даже не подумал об этом ..... Чувствуешь себя совсем немым прямо сейчас. Еще раз спасибо! – Chuck

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