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

Откуда:
Сообщений: 450
Доброго времени суток!
Имеется таблица, в которой для каждого клиента могут быть несколько записей, но по одной на каждый день.
create table test (client int, date smalldatetime, pay int, serv int)

Например, в этой таблице client int - код клиента, pay int - сколько оплатил, serv int - на сколько забрал
Причем, в один и тот же день клиент может оплатить на n руб, а забрать на m руб и наоборот, может оплатить и не забрать товар и т.п.
не могу сообразить как написать запрос, чтобы для каждого клиента выводилась на каждый день одна запись, но данные брались из всех имеющихся. Например, показать на каждого клиента макс оплату и отгрузку и т.п. Заранее спасибо за помощь.
11 окт 12, 16:50    [13303833]     Ответить | Цитировать Сообщить модератору
 Re: Из трех записей собрать информацию в одну запись  [new]
antbr
Member

Откуда:
Сообщений: 75
Volodya,
...
group by client, date
11 окт 12, 16:57    [13303889]     Ответить | Цитировать Сообщить модератору
 Re: Из трех записей собрать информацию в одну запись  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Volodya
Имеется таблица, в которой для каждого клиента могут быть несколько записей, но по одной на каждый день.
Взаимно-исключающие параграфы?
Т.е. изначально:
CREATE TABLE dbo.Test (Client Int, Date Date, PRIMARY KEY (Client, Date), Pay Money, Serv Int)
Т.е банальный SELECT без никаких бесполезных группировок.

Вы сами понимаете чего хотите?
11 окт 12, 17:26    [13304089]     Ответить | Цитировать Сообщить модератору
 Re: Из трех записей собрать информацию в одну запись  [new]
user89
Member

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

Давайте сюда заполненные тестовые данные, что-то типа такого:
declare @t table (Field1 varchar(50), Field2 varchar(50))
insert @t
 select 'Depart 1','Podrazdel 1_1' union all select 'Depart 1','Podrazdel 1_2' union all select 'Depart 2','Podrazdel 2_1' union all
 select 'Depart 2','Podrazdel 2_2' union all select 'Podrazdel 1_1','Otdel 1_1' union all select 'Podrazdel 1_1','Otdel 1_2' 

select * from @t

И желаемый результат.
11 окт 12, 17:36    [13304151]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить