Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Объединение таблиц -помогите, пожалуйста, понять проблему  [new]
LisSp
Member

Откуда:
Сообщений: 186
Помогите, пожалуйста, понять почему не получается справится с задачей:

-- Есть 3 таблицы в каждой по столбцу. В 1 и 2 таблице столбцы иногда имеют одинаковые значения. Объединяются они по связи с 3 таблицой.
-- Надо вывести конкретные значения 1Столбца (1Таблица) и 2Столбца (2Таблица) в один столбец, при этом убрав повторяющееся и отсортировать.

--Способ №1
--через UNION - это мне кажется самый оптимальный способ, но:
--Записи двоятся и поэтому если в 1Столбце и 2Столбце значение одинаково, то получается дублирующая запись

SELECT 1Стобец, 3Столбец          
FROM (1Таблица inner join 3Таблица ON 1Столбец = 3Столбец)
WHERE  (1Столбец='111'), (1Столбец='112') 
GROUP BY 1Столбец, 3Столбец

union all

SELECT 1Столбец, 3Столбец    
FROM (2Таблица inner join 3Таблица ON 2Столбец=3Столбец)  
WHERE  (2Столбец='222'), (2Столбец='112')  
GROUP BY 2Столбец, 3Столбец
ORDER BY 1 ASC;



--Способ №2 - но он видимо совсем не подходит
--через CASE
--выполняются условие только для 1Столбца - не выводятся значения 2Столбца
SELECT 
       case 
          when 1Столбец=2Столбец then 1Столбец
          else 2Столбец
       end as [Kod],
       3Столбец
       
FROM 2Таблица INNER JOIN (1Таблица INNER JOIN 3Таблица ON 1Столбец = 3Столбец) ON 2Столбец = 3Столбец
WHERE  (1Столбец='111') or (2Столбец='222') 
GROUP BY 1Столбец, 2Столбец, 3Столбец
14 мар 13, 06:54    [14045540]     Ответить | Цитировать Сообщить модератору
 Re: Объединение таблиц -помогите, пожалуйста, понять проблему  [new]
Добрый Э - Эх
Guest
таки UNION и UNION ALL - разные сет-операторы. Первый - отсеивает дубли, второй - нет
14 мар 13, 07:52    [14045578]     Ответить | Цитировать Сообщить модератору
 Re: Объединение таблиц -помогите, пожалуйста, понять проблему  [new]
LisSp
Member

Откуда:
Сообщений: 186
Добрый Э - Эх,

точняк! спасибо огромное!!!
14 мар 13, 08:06    [14045598]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить