powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос по количеству вариантов
20 сообщений из 20, страница 1 из 1
запрос по количеству вариантов
    #36300374
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток!
Наверняка похожий запрос звучал. но что-то не могу найти.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
SET DATE BRITISH
 creat curs days (day n( 2 ),date_month n( 2 ))
 insert into days(day,date_month)values( 1 , 36 )
 insert into days(day,date_month)values( 2 , 36 )
 insert into days(day,date_month)values( 3 , 36 )
 insert into days(day,date_month)values( 4 , 36 )
 insert into days(day,date_month)values( 5 , 36 )
 insert into days(day,date_month)values( 6 , 36 )
 insert into days(day,date_month)values( 7 , 36 )
 insert into days(day,date_month)values( 8 , 36 )
 insert into days(day,date_month)values( 9 , 36 )
 insert into days(day,date_month)values( 10 , 36 )
 insert into days(day,date_month)values( 11 , 36 )
 insert into days(day,date_month)values( 12 , 36 )
 insert into days(day,date_month)values( 13 , 36 )
 insert into days(day,date_month)values( 14 , 36 )
 insert into days(day,date_month)values( 15 , 36 )
 insert into days(day,date_month)values( 16 , 36 )
 insert into days(day,date_month)values( 17 , 36 )
 insert into days(day,date_month)values( 18 , 36 )
 insert into days(day,date_month)values( 19 , 36 )
 insert into days(day,date_month)values( 20 , 36 )
 insert into days(day,date_month)values( 21 , 36 )
 insert into days(day,date_month)values( 22 , 36 )
 insert into days(day,date_month)values( 23 , 36 )
 insert into days(day,date_month)values( 24 , 36 )
 insert into days(day,date_month)values( 25 , 36 )
 insert into days(day,date_month)values( 26 , 36 )
 insert into days(day,date_month)values( 27 , 36 )
 insert into days(day,date_month)values( 28 , 36 )
 insert into days(day,date_month)values( 29 , 36 )
 insert into days(day,date_month)values( 30 , 36 )

 insert into days(day,date_month)values( 1 , 37 )
 insert into days(day,date_month)values( 2 , 37 )
 insert into days(day,date_month)values( 3 , 37 )
 insert into days(day,date_month)values( 4 , 37 )
 insert into days(day,date_month)values( 5 , 37 )
 insert into days(day,date_month)values( 6 , 37 )
 insert into days(day,date_month)values( 7 , 37 )
 insert into days(day,date_month)values( 8 , 37 )
 insert into days(day,date_month)values( 9 , 37 )
 insert into days(day,date_month)values( 10 , 37 )
 insert into days(day,date_month)values( 11 , 37 )
 insert into days(day,date_month)values( 12 , 37 )
 insert into days(day,date_month)values( 13 , 37 )
 insert into days(day,date_month)values( 14 , 37 )
 insert into days(day,date_month)values( 15 , 37 )
 insert into days(day,date_month)values( 16 , 37 )
 insert into days(day,date_month)values( 17 , 37 )
 insert into days(day,date_month)values( 18 , 37 )
 insert into days(day,date_month)values( 19 , 37 )
 insert into days(day,date_month)values( 20 , 37 )
 insert into days(day,date_month)values( 21 , 37 )
 insert into days(day,date_month)values( 22 , 37 )
 insert into days(day,date_month)values( 23 , 37 )
 insert into days(day,date_month)values( 24 , 37 )
 insert into days(day,date_month)values( 25 , 37 )
 insert into days(day,date_month)values( 26 , 37 )
 insert into days(day,date_month)values( 27 , 37 )
 insert into days(day,date_month)values( 28 , 37 )
 insert into days(day,date_month)values( 29 , 37 )
 insert into days(day,date_month)values( 30 , 37 )
 insert into days(day,date_month)values( 31 , 37 )
* это просто конкретные дни месяца
 creat curs tarlgot (num_lgot n( 2 ),special l)
 insert into tarlgot(num_lgot,special)value( 1 ,.f.)
 insert into tarlgot(num_lgot,special)value( 2 ,.t.)
 insert into tarlgot(num_lgot,special)value( 3 ,.f.)
*свойства льгот 
 creat curs lgkat (schet n( 6 ),filter_uch n( 1 ),num_lgot n( 2 ),un_code n( 3 ),date_first d,date_last d)
 insert into lgkat (schet,filter_uch,num_lgot,un_code,date_first,date_last)value( 100000 , 1 , 1 , 0001 ,ctod('01/01/2009'),ctod('01/01/3000')) &&'01/01/3000'-запредельная дата которая 'никогда' не наступит те активные на текущи момент  
 insert into lgkat (schet,filter_uch,num_lgot,un_code,date_first,date_last)value( 100000 , 1 , 2 , 0002 ,ctod('01/01/2009'),ctod('30/09/2009'))   
 insert into lgkat (schet,filter_uch,num_lgot,un_code,date_first,date_last)value( 100000 , 1 , 3 , 0003 ,ctod('01/10/2009'),ctod('01/01/3000'))   
*льготы
* browse last
cschet= 100000 
uch_per= 1 
mes_rasch= 37 
dMes_teck=ctod('01/10/2009')
 
 
 
 sele days.day,lgkat.num_lgot as num_lgot,lgkat.un_code as un_code;
 from lgkat,tarlgot,days;
 wher   lgkat.schet=cschet and lgkat.filter_uch=uch_per and lgkat.num_lgot=tarlgot.num_lgot and between(dMes_teck+days.day- 1 ,lgkat.date_first,lgkat.date_last); 
 and days.date_month=mes_rasch;
 into  curs lgkat_per ;
 order by day
 browse last

* нужно  в запросе отобразить не просто присутствующие льготы в дне
* а все варианты их 'расположения'(первая, вторая) и распространения 'дополнительной площади'
*(последняя распространяется только на одну льготу и не специальную)
* а вариантов (количество льгот факториал)*(количество не специальных если таковые имеются в противном случае  1 )
* так в первом дне вместо 
* day num_lgot un_code
*   1       1         001 
*   1       3         003 
*должно быть что-то вроде
* day num_lgot un_code variant position rsp_special
*   1       1         001       1          1        .t.   
*   1       3         003       1          2        .f.
*____________________________________________
*   1       1         001       2          2        .t.   
*   1       3         003       2          1        .f.
*____________________________________________
*   1       1         001       3          1        .f.   
*   1       3         003       3          2        .t.
*____________________________________________
*   1       1         001       4          2        .f.   
*   1       3         003       4          1        .t.
* или
mes_rasch= 36 
dMes_teck=ctod('01/09/2009')
 
 sele days.day,lgkat.num_lgot as num_lgot,lgkat.un_code as un_code;
 from lgkat,tarlgot,days;
 wher   lgkat.schet=cschet and lgkat.filter_uch=uch_per and lgkat.num_lgot=tarlgot.num_lgot and between(dMes_teck+days.day- 1 ,lgkat.date_first,lgkat.date_last); 
 and days.date_month=mes_rasch;
 into  curs lgkat_per ;
 order by day
 browse last
* вместо 
* day num_lgot un_code
*   1       1         001 
*   1       2         002 
*должно быть что-то вроде
* day num_lgot un_code variant position rsp_special
*   1       1         001       1          1        .t.   
*   1       2         002       1          2        .f.
*____________________________________________
*   1       1         001       2          2        .t.   
*   1       2         002       2          1        .f.
*____________________________________________
*вобщем нечно вроде запроса по количеству вариантов
помогите плизд запросом. или дайте ссылку на решение подобной проблемы.Заранее благодарен
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36300473
homik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайье про GROUP BY
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36300568
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
homik,

Если нужно просто иметь декартово произведение вариантов, то измените предикат where например, так:

where lgkat.schet=cschet ;
and lgkat.filter_uch=uch_per ;
and between(dMes_teck+days.day-1, lgkat.date_first, lgkat.date_last);

Здесь убрана связь между двумя курсорами.
Может это то, что нужно.

Если нет, то занесите в курсоры по 2-3-4 записи и покажите нам _только то, что при этом должно быть на "выходе"_.
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36300621
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorbikwhere lgkat.schet=cschet ;
and lgkat.filter_uch=uch_per ;
and between(dMes_teck+days.day-1, lgkat.date_first, lgkat.date_last);


В предикат еще добавьте
and days.date_month=mes_rasch;

(не увидел сразу)
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36300929
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll,

Что-то вы там долго набираете данные, а у меня уже время заканчивается.
Так что попробуйте вот это для интереса:

sele * ;
from lgkat, tarlgot, days ;
where lgkat.schet = cschet ;
and lgkat.filter_uch=uch_per ;
and between (dMes_teck+days.day-1, lgkat.date_first, lgkat.date_last) ;
and days.date_month=mes_rasch ;
order by day

Поле Day есть аналог вашего variant.
Если похоже, то уберите лишние столбцы из запроса.
Если нет, то сделайте в форум сообщение с теми данными, что я просил раньше.
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36301199
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Variant совсем не аналог Day. Group by должен быть- сам попой чувствую, но как его применить- никак сообразить не могу. Наверно не до конца сформировал задачу. Просто расчет льгот имеет ряд жестких правил (позиция льготы(первая вторая и тд) имеет значении так же выделяется на любую не специальную tarlgot.special дополнительное значение). Но ‘ограничений’, какой льготой абонент вправе воспользоваться в первую очередь, какой во вторую, нет. На какую кинуть дополнительное свойство тоже ограничения нет(единственное нельзя на определенные типы льгот tarlgot.special=.t.)
Уже сейчас имеютя льготы с процентами 0.50,0 и 0.25,0.25 по разным услугам
Вот и подумал независимо от ситуации находить для абонента оптимально вариант.
(просто рассчитать по всем вариантам и выбрать первый лучший). А для этого и нужен сей курсорчег (желательно одним запросом)
В первом примере запрос ‘видит’ у абонента первого октября 2009
две льготы обе не специальные надо описать четыре варианта их “расположения”
(два варианта позиционирования)*(два варианта распределения доп свойства)

Во втором примере запрос ‘видит’ у абонента первого сентября 2009
две льготы одну специальную вторую нет надо описать два варианта их “расположения”
(два варианта позиционирования)*(один вариант распределения доп свойства)


Re: запрос по количеству вариантов
igorbik Если нет, то занесите в курсоры по 2-3-4 записи и покажите нам _только то, что при этом должно быть на "выходе"_.
тю, ну пусть будет так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
creat curs days (day n( 2 ),date_month n( 2 ))
 insert into days(day,date_month)values( 1 , 36 )
insert into days(day,date_month)values( 1 , 37 )

creat curs tarlgot (num_lgot n( 2 ),special l)
 insert into tarlgot(num_lgot,special)value( 1 ,.f.)
 insert into tarlgot(num_lgot,special)value( 2 ,.t.)
 insert into tarlgot(num_lgot,special)value( 3 ,.f.)
 creat curs lgkat (schet n( 6 ),filter_uch n( 1 ),num_lgot n( 2 ),un_code n( 3 ),date_first d,date_last d)
 insert into lgkat (schet,filter_uch,num_lgot,un_code,date_first,date_last)value( 100000 , 1 , 1 , 0001 ,ctod('01/01/2009'),ctod('01/01/3000')) 
 insert into lgkat (schet,filter_uch,num_lgot,un_code,date_first,date_last)value( 100000 , 1 , 2 , 0002 ,ctod('01/01/2009'),ctod('30/09/2009'))   
 insert into lgkat (schet,filter_uch,num_lgot,un_code,date_first,date_last)value( 100000 , 1 , 3 , 0003 ,ctod('01/10/2009'),ctod('01/01/3000'))   

Или дайте парачку похожих ссылок
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36301252
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll,

Ну, теперь покажите в виде таблицы, что из этого должно быть на выходе из запроса.
Именно из этих данных, и именно так, как нужно, и в нужном количестве строк.
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36301381
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorbik,

К сожалению, исчезаю на несколько часов.
Пишите результирующую таблицу, если никто не поможет, то через неск. часов посмотрим.
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36301462
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Желаемый результат при
Код: plaintext
1.
2.
3.
4.
cschet= 100000 
uch_per= 1 
mes_rasch= 37 
dMes_teck=ctod('01/10/2009')

day num_lgot un_code variant position rsp_special1 1 001 1 1 .t.1 3 003 1 2 .f.1 1 001 2 2 .t. 1 3 003 2 1 .f.1 1 001 3 1 .f. 1 3 003 3 2 .t.1 1 001 4 2 .f. 1 3 003 4 1 .t.

при
Код: plaintext
1.
2.
3.
4.
cschet= 100000 
uch_per= 1 
mes_rasch= 36 
dMes_teck=ctod('01/09/2009')

day num_lgot un_code variant position rsp_special 1 1 001 1 1 .t. 1 2 002 1 2 .f. 1 1 001 2 2 .t. 1 2 002 2 1 .f.
пардон что кусками
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36301631
quxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rock-n-rollЖелаемый результат при
Код: plaintext
1.
2.
3.
4.
cschet= 100000 
uch_per= 1 
mes_rasch= 37 
dMes_teck=ctod('01/10/2009')

day num_lgot un_code variant position rsp_special1 1 001 1 1 .t.1 3 003 1 2 .f.1 1 001 2 2 .t. 1 3 003 2 1 .f.1 1 001 3 1 .f. 1 3 003 3 2 .t.1 1 001 4 2 .f. 1 3 003 4 1 .t.

при
Код: plaintext
1.
2.
3.
4.
cschet= 100000 
uch_per= 1 
mes_rasch= 36 
dMes_teck=ctod('01/09/2009')

day num_lgot un_code variant position rsp_special 1 1 001 1 1 .t. 1 2 002 1 2 .f. 1 1 001 2 2 .t. 1 2 002 2 1 .f.
пардон что кусками
Код: plaintext
 rsp_special=tarlgot.special ?
Если да,то непонятно как вы получаете rsp_special=.t. в первом варианте при num_lgot=1 в базовой табличке он не может принимать такого значения.
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36302317
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот именно только наоборот
rsp_special=!tarlgot.special(но .t. только один в варианте если вообще есть)
извените здесь надо было путаницу убрать-сделать однотипными темболее rsp_special еще не существует
tarlgot.special=.t. это свойство льготы 'специальная'(их мало видов на них доп свойство не распространяется)
просто думал rsp_special=.t. в результате- единственный в варианте если есть на которй это свойство распространилось.
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36302468
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll,

Попробуйте либо более вразумительно определить зависимость между rsp_special и tarlgot.special или другими полями. Или перерисуйте выводную табличку так, чтобы там не было rsp_special, но появился tarlgot.special.
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36302972
qixix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rock-n-rollвот именно только наоборот
rsp_special=!tarlgot.special(но .t. только один в варианте если вообще есть)
извените здесь надо было путаницу убрать-сделать однотипными темболее rsp_special еще не существует
tarlgot.special=.t. это свойство льготы 'специальная'(их мало видов на них доп свойство не распространяется)
просто думал rsp_special=.t. в результате- единственный в варианте если есть на которй это свойство распространилось.

Пока Вы сами не определитесь с человеческой постановкой вопроса,думаю понять мы вас не сможем.
Выкиньте из вопроса таблицы не относящиеся к делу и оставьте необходимый минимум с несколькими вариантами записей.
Что есть:
Код: plaintext
... 
Что нужно получить:
Код: plaintext
...
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36303800
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хороше попробую так: Есть два тейбла
tabel2- наборы свойств (сдесь свойст много но все обычные,но special=.t. означает что некое свойство может быть а может нет. при .f. при точно нет)
Код: plaintext
1.
2.
3.
4.
 creat curs  tabel2(num_lgot n( 1 ),special l,svoistvo1 n( 2 ))
 insert into tabel2(num_lgot,special,svoistvo1)value( 1 ,.t., 10 )
 insert into tabel2(num_lgot,special,svoistvo1)value( 2 ,.t., 20 )
 insert into tabel2(num_lgot,special,svoistvo1)value( 3 ,.f., 30 )
и tabel1- периоды актуальности свойств(num_lgot-связь с tabel2,un_code-уникальность записи как таковой
Код: plaintext
1.
2.
3.
4.
5.
 creat curs  tabel1(num_lgot n( 1 ),un_code n( 1 ),date_first d,date_last d)
 insert into tabel1(num_lgot,un_code,date_first,date_last)value( 1 , 1 ,ctod('01/01/2009'),ctod('02/01/2009')) 
 insert into tabel1(num_lgot,un_code,date_first,date_last)value( 2 , 2 ,ctod('02/01/2009'),ctod('03/01/2009'))   
 insert into tabel1(num_lgot,un_code,date_first,date_last)value( 3 , 3 ,ctod('03/01/2009'),ctod('04/01/2009'))   
 insert into tabel1(num_lgot,un_code,date_first,date_last)value( 3 , 4 ,ctod('04/01/2009'),ctod('04/01/2009'))   
и пременной some_per=ctod('04/01/2009') запрос
Код: plaintext
1.
2.
3.
 sele tabel1.un_code,tabel2.special,tabel2.svoistvo1;
 from tabel1,tabel2;
 wher tabel1.num_lgot=tabel2.num_lgot and between(some_per,date_first,date_last)
скажет что 02/01/2009 существовало две уникальные записи две уникальные записи
un_code special svoistvo1 1.t.10 2.t.20
теперь нужно перебрать все варианты позицианирования этих записей, обозвав каждое значение уникальным variant указать позицию
un_code special svoistvo1 variant position 1.t.1011 2.t.2012 1.t.1022 2.t.2021
те два варианта в первом набор свойств un_code=1 поставили на первую позицию un_code=2 на вторю позиция
во втором варианте наоборот
Теперь про tabel2.special=.t. - на этот набор доп свойство может распространяться,но распространиться только на одну в 'варианте'
итого всего четыре варианта
un_code special svoistvo1 variant position 1.t.1011 2.f.2012 1.t.1022 2.f.2021 1.f.1031 2.t.2032 1.f.1042 2.t.2041
это и есть желаемый результат
соответственно при some_per=ctod('03/01/2009') хотелось бы видеть
un_code special svoistvo1 variant position2.t.20113.f.30122.t.30223.f.3021
а при some_per=ctod('04/01/2009') хотелось бы видеть
un_code special svoistvo1 variant position3.f.30114.f.30123.f.30224.f.3021
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36303910
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll
un_code special svoistvo1 variant position2.t.20113.f.30122.t.30223.f.3021

Здесь все правильно?
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36303962
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
un_code special svoistvo1 variant position2.t.20113.f.30122.t.20223.f.3021
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36304186
quxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rock-n-roll,но special=.t. означает что некое свойство может быть а может нет. при .f. при точно нет
Т.о. при
Код: plaintext
table2.special=.t.
имеем две позиции Special в выборке:T and F,
a при
Код: plaintext
table2.special=.f.
-только одну F
Это имелось ввиду?
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36305455
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll,

Просмотрев материалы с чисто формальным подходом, я могу сделать предварительные выводы.

1. Одним запросом не сделаем все сразу, кроме того запроса, что уже сделан.
В результате получаем 1-ю таблицу размером 3*N (N- число строк, которые мы заранее предсказать не сможем, но можем определить после запроса через RECCOUNT(), или _TALLY, или с новым запросом через COUNT()).

2. Да, размножение здесь не декартово, а факториальное.
А для этого случая нужно создавать курсор со структурой конечной таблицы, и путем перебора
полученного запроса с помощью N вложенных циклов FOR...ENDFOR заполнить этот курсор, чтобы получить 2-ю таблицу.

3. После этого нужно по какому-то алгоритму (вот тут непонятно пока) добавить еще какое-то количество (похоже, N или 2*N) строк, изменив при этом значения в поле SPECIAL хотя бы по формальному алгоритму.

Самое неприятное, что часть 2 мы не сможем сделать, не зная N... Если так, то стоит ли мучиться и строить факториальные процессы размножения данных?

Если же проблема ОЧЕНЬ актуальна, то есть смысл в ТОЧНОМ определении алгоритма формирования поля SPECIAL, а потом нужно проштудировать все книги Кнута в поисках похожего решения.

Это ИМХО.
Может, кто-то мыслит иначе.
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36305764
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох -хо хох циклом то как - понятно.
Нехотелость.
Спс Всем Большое.
Прошу модератора закрыть топ
...
Рейтинг: 0 / 0
запрос по количеству вариантов
    #36313043
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и в догонку пока не ‘закрыли’ Перепоставил задачу
Курсор
Код: plaintext
1.
2.
3.
4.
5.
6.
sele days.day,lgkat.num_lgot as num_lgot,lgkat.proj as proj,!tarlgot.special as special,lgkat.position as position,.f. as fampl,;
 tarlgot.proc_otp/ 100  as proc_otp,tarlgot.proc_vod/ 100  as proc_vod;&&
 from lgkat,tarlgot,days;
 wher   lgkat.schet=cschet and lgkat.filter_uch=uch_per and lgkat.num_lgot=tarlgot.num_lgot;   and between(dMes_teck+days.day- 1 ,lgkat.date_first,lgkat.date_last;
 and days.date_month=mes_rasch;
 into  curs lgkat_per order by day asc,proc_otp desc
дает результат
day … special … fampl 1 … .f. … .f. 1 … .t. … .f. 2 … .f. … .f. 2 … .t. … .f. 2 … .t. … .f. 3 … .f. … .f. 3 … .f. … .f.
На что бы так заменить ‘.f. as fampl’ чтобы разрезе дня(day) курсор давал fampl=.t. при первом special=.t. но только при одном . Те. Курсор выдал следующее
day … special … fampl 1 … .f. … .f. 1 … .t. … .t. 2 … .f. … .f. 2 … .t. … .t. 2 … .t. … .f. 3 … .f. … .f. 3 … .f. … .f.
Заранее благодарен
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос по количеству вариантов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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