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

Откуда:
Сообщений: 34
у меня есть вот такой скрипт
WITH total AS ( SELECT ProductCode FROM spravka 
                UNION 
                SELECT code FROM ostatki )
				
SELECT *
FROM total
left JOIN spravka ON total.ProductCode = spravka.ProductCode  
left JOIN ostatki ON total.ProductCode = ostatki.code 
where spravka.[Date] between DATETIMEFROMPARTS (2021,03,22,0,0,0,0) and DATETIMEFROMPARTS (2021,03,22,23,59,59,999)
order by spravka.ProductCode   asc


она работает корректно, но когда я добавляю еще одну таблицу, то почему то она дублируется.
WITH total AS ( SELECT ProductCode FROM spravka 
                UNION 
                SELECT code FROM ostatki 
                UNION
		SELECT ProductCode  FROM [dbo].[Лист1$]
		UNION
		SELECT ProductCode FROM category)
				
SELECT *
FROM total
left JOIN spravka ON total.ProductCode = spravka.ProductCode  
left JOIN ostatki ON total.ProductCode = ostatki.code 
left JOIN category on total.ProductCode=category.ProductCode
left JOIN [dbo].[Лист1$] on total.ProductCode=[dbo].[Лист1$].ProductCode
where spravka.[Date] between DATETIMEFROMPARTS (2021,03,22,0,0,0,0) and DATETIMEFROMPARTS (2021,03,22,23,59,59,999)
order by spravka.ProductCode   asc




Дублируется именно productcode

Сообщение было отредактировано: 26 апр 21, 06:53
26 апр 21, 06:56    [22314193]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Focha
Member

Откуда: Москва
Сообщений: 590
Дубль происходит когда вы соединяете таблицы, значит [dbo].[Лист1$] и category есть одинаковые ProductCode

SELECT l.ProductCode, c.ProductCode  FROM [dbo].[Лист1$] as l
join category as c on l.ProductCode = c.ProductCode
 
26 апр 21, 08:44    [22314218]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Ablaykhan
Member

Откуда:
Сообщений: 34
Focha,

Я написал ваш скрипт и отдельно запустил, по итогу он все равно дублирует. Попытался вписать ваш скрипт в свой но что то не совсем получается.
26 апр 21, 09:05    [22314229]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8587
Ablaykhan,

скрипт демонстрирует факт наличия дублирующихся значений ProductCode в [dbo].[Лист1$], если это не понятно.
26 апр 21, 10:53    [22314296]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Ablaykhan
Member

Откуда:
Сообщений: 34
Владислав Колосов,

а как я могу их соединить не дублируя, я изменил название столбцов это исправило мне ошибку Неоднозначное имя столбца "ProductCode".
26 апр 21, 11:15    [22314312]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8587
Ablaykhan,

сначала выясните - что это за дубли.
26 апр 21, 11:35    [22314335]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить