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

Откуда:
Сообщений: 8
Здравствуйте.
Нужно получить данные из двух таблиц товароучетки убрав повторяющиеся строки:
Сваял такой запрос:

SELECT
Goods.Code, Goods.Name,Goods.PriceOut1,Goods.PriceOut2,Operations.Qtty,Operations.OperType,Operations.Date
From Goods,Operations
Where Goods.Code = (SELECT DISTINCT Goods.Code) and
Goods.Name = (SELECT DISTINCT Goods.Name) and
Date = (SELECT DISTINCT Operations.Date) and
PriceOut1 = (SELECT DISTINCT Goods.PriceOut1) and
PriceOut2 = (SELECT DISTINCT Goods.PriceOut2) and
Qtty = (SELECT DISTINCT Operations.Qtty) and
OperType = (SELECT DISTINCT Operations.OperType) and
OperType = 1 and
Date <= '2012-09-08' and Date >= '2011-01-01' and
Name != 'Служебный товар' and Qtty != 0
Order by 1

Но не выходит ни фига - в sql я не силен пока, только учусь. Подскажите куда копать?
заранее спасибо.
23 авг 13, 10:35    [14745840]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
micha26
Но не выходит ни фига - в sql я не силен пока, только учусь. Подскажите куда копать?

http://firststeps.ru/sql/r.php?8
23 авг 13, 10:38    [14745870]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
iap
Member

Откуда: Москва
Сообщений: 47195
micha26,

для начала прочитать про JOINы.
И оформите, пожалуйста, вопрос согласно Рекомендации по оформлению сообщений в форуме, особенно п.п. 4 и 6
Используйте тег SRC
23 авг 13, 10:40    [14745885]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
micha26
Member

Откуда:
Сообщений: 8
iap,
Рекомендации прочитал - вроде помогите не писал :-) Надо новую тему создать или можно изменить существующую? Если менять то как?
С Join пробовал - запрос зависает.
Поясню - во второй таблице Operations только одно идентичное первой таблице поле PriceIn
а надо вытащить еще и Date.
23 авг 13, 10:59    [14746041]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
micha26
Рекомендации прочитал - вроде помогите не писал :-)

Читайте дальше 3го пункта
micha26
Надо новую тему создать или можно изменить существующую? Если менять то как?

Вам предложили выполнить п.4. и п.6

micha26
С Join пробовал - запрос зависает.

Т.е. теперь еще нужно угадать текст запроса ?

micha26
Поясню - во второй таблице Operations только одно идентичное первой таблице поле PriceIn
а надо вытащить еще и Date.

Рекомендации по оформлению сообщений в форуме, особенно п.п. 4 и 6
23 авг 13, 11:03    [14746070]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
icprog
Member

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

SELECT DISTINCT [Список Нужных Столбцов]
FROM Goods inner join Operations
ON Goods.[Поле]=Operations.[Поле] --Поле по которому связаны таблицы
WHERE Ваши Условия
23 авг 13, 11:15    [14746154]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
micha26
Member

Откуда:
Сообщений: 8
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Service Pack
Требуется выборка из двух таблиц Goods и Operations - запрос приведен ниже.

SELECT
Goods.Code, Goods.Name,Goods.PriceOut1,Goods.PriceOut2,Operations.Qtty,Operations.OperType,Operations.Date
From Goods,Operations
Where Goods.Code = (SELECT DISTINCT Goods.Code) and
Goods.Name = (SELECT DISTINCT Goods.Name) and
Date = (SELECT DISTINCT Operations.Date) and
PriceOut1 = (SELECT DISTINCT Goods.PriceOut1) and
PriceOut2 = (SELECT DISTINCT Goods.PriceOut2) and
Qtty = (SELECT DISTINCT Operations.Qtty) and 
OperType = (SELECT DISTINCT Operations.OperType) and
OperType = 1 and 
Date <= '2012-09-08' and Date >= '2011-01-01' and
Name != 'Служебный товар' and Qtty != 0
Order by 1

И попытка номер два
SELECT DISTINCT Goods.Code,Goods.Date,Goods.Name,Goods.PriceIn,Goods.PriceOut1,
Goods.PriceOut2,Operations.PriceIn,Operations.Date
From Goods, Operations
Where 
Operations.PriceIn = Goods.PriceIn and
Operations.Date = Goods.Date


Еще что-то подправить?
23 авг 13, 11:27    [14746260]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
micha26
Member

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

Я пробовал нечто похожее - сейчас попытаюсь по вашему сделать, возможно я что-то упустил.
Спасибо заранее.
23 авг 13, 11:29    [14746278]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
micha26
И попытка номер два
SELECT DISTINCT Goods.Code,Goods.Date,Goods.Name,Goods.PriceIn,Goods.PriceOut1,
Goods.PriceOut2,Operations.PriceIn,Operations.Date
From Goods, Operations
Where 
Operations.PriceIn = Goods.PriceIn and
Operations.Date = Goods.Date



Еще что-то подправить?

Ничего, если этот запрос выдает вам нужные данные
23 авг 13, 11:31    [14746292]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
icprog
Member

Откуда:
Сообщений: 166
micha26
icprog,

Я пробовал нечто похожее - сейчас попытаюсь по вашему сделать, возможно я что-то упустил.
Спасибо заранее.


Условие не зубудьте. Что-то тапа:
SELECT DISTINCT Goods.Code,Goods.Date,Goods.Name,Goods.PriceIn,Goods.PriceOut1,Goods.PriceOut2,Operations.PriceIn,Operations.Date
FROM Goods inner join Operations
ON Operations.PriceIn = Goods.PriceIn and Operations.Date = Goods.Date
WHERE Operations.OperType = 1 and 
Operations.Date <= '2012-09-08' and Operations.Date >= '2011-01-01' and
Goods.Name != 'Служебный товар' and Operations.Qtty != 0
23 авг 13, 11:34    [14746333]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
icprog
Member

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

Ёлки-палки, одни очепятки ))))
23 авг 13, 11:35    [14746349]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
micha26
Member

Откуда:
Сообщений: 8
icprog
micha26,

SELECT DISTINCT [Список Нужных Столбцов]
FROM Goods inner join Operations
ON Goods.[Поле]=Operations.[Поле] --Поле по которому связаны таблицы
WHERE Ваши Условия


Вот сделал таким макаром
SELECT DISTINCT Goods.Code, Goods.Name,Goods.PriceIn,Goods.PriceOut1,Goods.PriceOut2,
Operations.PriceIn,Operations.Qtty,Operations.OperType,Operations.Date
FROM Goods inner join Operations
ON Goods.PriceIn =Operations.PriceIn 
WHERE
OperType = 1 and 
Operations.Date <= '2012-09-08' and Operations.Date >= '2011-01-01' and
Name != 'Служебный товар' and Qtty != 0
Order by 1

Запрос крутится - подозреваю что завис...
23 авг 13, 11:52    [14746563]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
micha26
Member

Откуда:
Сообщений: 8
Glory
micha26
И попытка номер два
SELECT DISTINCT Goods.Code,Goods.Date,Goods.Name,Goods.PriceIn,Goods.PriceOut1,
Goods.PriceOut2,Operations.PriceIn,Operations.Date
From Goods, Operations
Where 
Operations.PriceIn = Goods.PriceIn and
Operations.Date = Goods.Date



Еще что-то подправить?

Ничего, если этот запрос выдает вам нужные данные


Да нет я имел в виду - подправить по оформлению темы - но все равно спасибо. :-)
23 авг 13, 11:58    [14746629]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
micha26
Да нет я имел в виду - подправить по оформлению темы

Вы дочитали до п.6 ?
Если да, то почему не привели описание таблиц, примеры данных и желаемый конечный результат ?
23 авг 13, 11:59    [14746648]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
micha26
Member

Откуда:
Сообщений: 8
Хм...
Желаемый результат выборка товаров до определенной даты с удалением повторяющихся строк:

21.11.1900 бочка с квасом 1шт. 1 рубль
23.11.1901 просто бочка 10 шт. 10 рублей
23 авг 13, 12:09    [14746765]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
micha26
Хм...
Желаемый результат выборка товаров до определенной даты с удалением повторяющихся строк:

21.11.1900 бочка с квасом 1шт. 1 рубль
23.11.1901 просто бочка 10 шт. 10 рублей

Фейспалм какой то
Вы прочитали п.6 ??? Ссылку на пример оформления открыли ???
Или чукча не читатель, а писатель ?
23 авг 13, 12:10    [14746780]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
micha26
Member

Откуда:
Сообщений: 8
Так ладно чтобы фейспалм не разводить - спасибо за помощь, будем дальше разбираться.
Закройте пожалуйста тему.
23 авг 13, 12:17    [14746838]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
icprog
Member

Откуда:
Сообщений: 166
micha26
Хм...
Желаемый результат выборка товаров до определенной даты с удалением повторяющихся строк:

21.11.1900 бочка с квасом 1шт. 1 рубль
23.11.1901 просто бочка 10 шт. 10 рублей


Видимо, здесь еще и агрегатные функции нужны будут
23 авг 13, 12:25    [14746916]     Ответить | Цитировать Сообщить модератору
 Re: Distinct из двух таблиц  [new]
vaskaxxx
Guest
select * from tbl1
union
select * from tbl2
23 авг 13, 12:55    [14747152]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить