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

Откуда:
Сообщений: 5
Доброго времени суток!

Помогите пожалуйста с селектом.

Есть таблица (табл1) Необходимо получить табл2.
Спасибо за помощь заранее!

К сообщению приложен файл. Размер - 41Kb
16 сен 11, 03:43    [11284745]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
Col
Member

Откуда: Торонто
Сообщений: 186
LetMeShowYou,

Distinct
16 сен 11, 03:52    [11284748]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
Добрый Э - Эх
Guest
Col
LetMeShowYou,

Distinct
А подумать?
16 сен 11, 04:37    [11284752]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
Добрый Э - Эх
Guest
LetMeShowYou, кури PIVOT...
Хотя, в данном случае проще через CASE + GROUP BY сделать...
16 сен 11, 04:38    [11284753]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
Добрый Э - Эх
Guest
LetMeShowYou,

что-то вроде такого:
select columns,
       min(case when variants = 'Variant1' then ColumnsType end)  as variant1,
       min(case when variants = 'Variant2' then ColumnsType end)  as variant2
  from t
 group by columns
 order by columns
16 сен 11, 04:48    [11284755]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
Col
Member

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

Distinct
А подумать?

O_o
К результу присмотритесь ;)

select distinct columns as 'каналы', columnstype as 'variant1', columnstype as 'variant2' from table1
16 сен 11, 05:51    [11284767]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
Добрый Э - Эх
Guest
Col
К результу присмотритесь ;)
Ещё раз: а подумать?

Более чем уверен - автор топика данные привел не самые адекватные.
Это я тебе по опыту 10-ти лет, проведенных на этом форуме, говорю...
16 сен 11, 06:11    [11284771]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
LetMeShowYou
Member

Откуда:
Сообщений: 5
Спасибо, помогли!
18 сен 11, 17:01    [11294972]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
Злой У-УХ ТЫ-ДЫЖ ЗЮ-ЗЮЩЪ
Guest
Col
select distinct columns as 'каналы', columnstype as 'variant1', columnstype as 'variant2' from table1

шо за алес капут? если одну и ту же колонку вывести два раза, то автоматически pivot получится? Col, завязывай с химикатами.
18 сен 11, 17:46    [11295061]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
LetMeShowYou
Member

Откуда:
Сообщений: 5
Помогите пожалуйста!

Есть таблица с документами и действиями с ними. Необходимо выбрать все, при условии, что если действие над конкретным документом повторяется, то выбрать самое раннее.

Заранее спасибо за помощь

К сообщению приложен файл. Размер - 31Kb
18 сен 11, 18:12    [11295154]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
aleks2
Guest
1. Атрофия мозга?
2. Пронумеровать ROW_NUMBER() OVER(PARTITION BY DOCS ORDER BY ActionDateTime) as Num
3. Выбрать фсе, у которых для предыдущего Num нет совпадения по ActionType.
4. Напишите ужо сами.
18 сен 11, 19:55    [11295324]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
LetMeShowYou
Member

Откуда:
Сообщений: 5
Я пронумеровал, спасибо, а как сделать "Выбрать фсе, у которых для предыдущего Num нет совпадения по ActionType"?
19 сен 11, 13:12    [11297774]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
aleks2
Guest
Уже лучше.
Типерича учим JOIN, в данном случае, LEFT с самим собой.
19 сен 11, 13:23    [11297894]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
LetMeShowYou
Member

Откуда:
Сообщений: 5
а если я результат во временную таблицу закину, а потом единички выведу из временной, ведь верно будет?
20 сен 11, 02:37    [11302314]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом пжлста  [new]
aleks2
Guest
;with
Numbered as
(
select *, ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ActionDateTime) as Num FROM [таблица с документами]
)
select T.*
FROM 
Numbered T
LEFT OUTER JOIN
Numbered TT
ON T.ID=TT.ID AND T.Num-1=TT.Num
WHERE T.ActionTypes<>TT.ActionTypes OR TT.ActionTypes is null
20 сен 11, 05:52    [11302370]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить