|
|
|
Две вложенных группировки
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть таблица S17 - "Виды выплат" KOD числовое поле - код вида выплаты NKOD строка - название Таблица F8 - "Выплаты": PY, NKAR строки, эти 2 поля вместе - код человека, получившего эту выплату KOD число - код вида выплаты из табл. S17 DATOP дата - дата начисления выплаты SUMP число - сумма выплаты Одному и тому же человеку за период может быть начислено несколько выплат одного и того же вида (но не разных). Записи в F8 неуникальны. Мне нужна численность получающих разные виды выплат за период, что-то типа такого: Единовременное пособие 123 Ежемесячная выплата 4567 ... Придумал, как получить список людей, получивших выплату за период: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. А вот такой запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. не дает желаемого, т.к. отдельно считает несколько выплат одного и того же вида одному и тому же человеку. Соединить эти 2 запроса мне не удалось, прошу помощи :) Да, если что, таблицы - это DBF-файлы, сделанные в FoxPro 2.6, изменять их структуру нельзя, куда-либо импортировать - нежелательно. Так что я несколько стеснен в средствах :) Сейчас использую самодельную программу на Delphi (работает через BDE). Спасибо за ответы-советы. PS: Извините, за длинный и бестолковый вопрос :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:15 |
|
||
|
Две вложенных группировки
|
|||
|---|---|---|---|
|
#18+
select dist PY, NKAR, KOD from f8 where F8.DATOP BETWEEN '01.12.2005' AND '31.12.2005' into cursor cTmp select b.NKOD, count(a.KOD) Qty from cTmp a, S17 b where a.KOD=b.KOD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:47 |
|
||
|
Две вложенных группировки
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ! (быстро, однако :) ) Как-то все подзрительно просто :) А что означает "cursor" (это где INTO cursor ... )? И во втором запросе зачем эти "a" и "b"? S17 - длинное название? А одним запросом это сделать невозможно, может, все-таки есть способ? В случае использования Delphi и BDE, при "select ... into blah-blah ..." таблица blah-blah будет создана автоматически? (сейчас проверить не могу - нет под рукой Delphi; все вышеприведенные ужасы творятся на работе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:53 |
|
||
|
Две вложенных группировки
|
|||
|---|---|---|---|
|
#18+
авторКак-то все подзрительно просто :) всё гениальное просто :)) авторА что означает "cursor" (это где INTO cursor ... )? Курсор - это временная табличка создающаяся в "мозгах" Фокса или исходная табличка с наложенным на неё фильтром условия WHERE авторИ во втором запросе зачем эти "a" и "b"? S17 - длинное название? Думаю AleksMed использовал для краткости - ведь а и b в 3 раза короче. авторА одним запросом это сделать невозможно, может, все-таки есть способ? Код: plaintext авторВ случае использования Delphi и BDE, при "select ... into blah-blah ..." таблица blah-blah будет создана автоматически? Как в дельфи реализовано - не знаю, а в Фоксе порожденный курсор будет создан и удалён автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 14:22 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1592677]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 324ms |

| 0 / 0 |
