powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сложный запроc на FoX'e
2 сообщений из 2, страница 1 из 1
Сложный запроc на FoX'e
    #33668297
SerG_FoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем таблицу: MyOtch

Num1 | char1 | num2 |
_____|______|______|
1 test1 11
1 test1 12
1 test6 5
1 test2 13
1 test2 10
2 test1 15
2 test3 10
2 test1 5
3 test1 8

Требуется получить: Myotch_rez

numnpp | Num1 | char1 | num2 |
_______|______|______|______|
1 1 test1 23
2 1 test2 23
3 1 test6 5
1 2 test1 20
2 2 test3 10
1 3 test1 8


Т.е. вторая таблица , если не учитывать поле numnpp, является результатом простого select'a с group by num1,char1 где поле num2 является SUM(NUM2) по этой группировке. вся загвоздка в получении поля numNPP которая изменяется только внутри группы NUM1.

Подскажите как это реализовать, уж слишком часто встречается.
Я сейчас это реализовую через scan, но получается слишком много текста.
Fox юзаю v.9 sp1

Заранее благодарен!
...
Рейтинг: 0 / 0
Сложный запроc на FoX'e
    #33668443
Сергей А.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если SQL не поддерживает аналитических функций, одним запросом не обойтись
Наименее трудозатратно, наверное, сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
* твой запрос с группировкой и спец.полем для будущего №п/п
SELECT  0000  as ord,id,name,COUNT(*) FROM table1 GROUP BY id,name INTO CURSOR tmp READWRITE
PUBLIC grp_old, npp
grp_old=.F.
* подстановка №п/п в пределах поля id
REPLACE ord WITH OrderValue(id) all

FUNCTION OrderValue
LPARAMETERS grp
IF VARTYPE(grp_old)!=VARTYPE(grp) OR grp_old!=grp
	grp_old=grp
	npp= 1 
ELSE
	npp=npp+ 1 
ENDIF
RETURN npp
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сложный запроc на FoX'e
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]