|
Сжатие таблицы по полю
| ☑ |
0
McArt
01.03.12
✎
09:58
|
В результате запроса получаем таблицу вида:
дата1 сотрудник1 сумма1
дата2 сотрудник1 сумма2
дата3 сотрудник2 сумма3
дата4 сотрудник2 сумма4
Как получить таблицу, где строка с сотрудником будет представлена лишь единожды с более поздней датой?
|
|
1
aleks-id
01.03.12
✎
10:00
|
переписать запрос
|
|
2
McArt
01.03.12
✎
10:03
|
Что добавить в запрос? Группировку, условие?
|
|
3
Kerk
01.03.12
✎
10:23
|
(2) Надо писать много запросов... в первом ищешь записи с минимальной датой, во втором накладываешь условия по результатам первого запроса.
|
|
4
andrewks
01.03.12
✎
10:25
|
а что делать с суммой? сложить? или только более позднюю сумму вывести?
|
|
5
andrewks
01.03.12
✎
10:26
|
(3) может, проще min() заюзать?
|
|
6
McArt
01.03.12
✎
10:29
|
(5) минимальная дата может соответствовать максимальной сумме. Вопрос в том и заключается, как выдернуть полностью строчку, где сотрудник одинаковый, а дата минимальная.
|
|
7
Kerk
01.03.12
✎
10:39
|
(4) ничего с ней делать не нужно, как я понял...
|
|
8
Kerk
01.03.12
✎
10:40
|
(5) При мин нужна группировка по всем полям, а ему нужно только по сотруднику.
|
|
9
Kerk
01.03.12
✎
10:49
|
Вот как-то так...
ВЫБРАТЬ
МИНИМУМ(НДФЛКЗачету.Период) КАК Период,
НДФЛКЗачету.ФизЛицо
ПОМЕСТИТЬ вт_ПервыеЗаписи
ИЗ
РегистрНакопления.НДФЛКЗачету КАК НДФЛКЗачету
СГРУППИРОВАТЬ ПО
НДФЛКЗачету.ФизЛицо
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
вт_ПервыеЗаписи.Период,
вт_ПервыеЗаписи.ФизЛицо,
НДФЛКЗачету.СуммаНДФЛКЗачету
ИЗ
вт_ПервыеЗаписи КАК вт_ПервыеЗаписи
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НДФЛКЗачету КАК НДФЛКЗачету
ПО вт_ПервыеЗаписи.Период = НДФЛКЗачету.Период
И вт_ПервыеЗаписи.ФизЛицо = НДФЛКЗачету.ФизЛицо
|
|