powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите с запросом
9 сообщений из 9, страница 1 из 1
помогите с запросом
    #36353521
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему такой запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
sele abonfl_lic.schet,abonfl.is_otp_sch as sch,tar_days.day,;
   iif((abonfl.is_otp and abonfl.is_otp_sch# 0  and ;
         ','+alltr(str(tar_days.day))+',' $ otp_vod_pl.otp and !iif(isnul(avar_otp_dom.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_dom.avar) and !iif(isnul(avar_otp_schet.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_schet.avar)),;
            abonfl.allpl, 000 . 00 ) as pl_sch;
from tar_days,abonfl_lic,otp_vod_pl,abonfl;
  left join avar_otp_dom on avar_otp_dom.num_dom=abonfl_lic.num_dom  and avar_otp_dom.date_month=mes_rasch;
  left join avar_otp_schet on avar_otp_schet.schet=abonfl.schet and avar_otp_schet.filter_uch=abonfl.filter_uch and avar_otp_schet.date_month=mes_rasch;  
wher between(dMes_teck+tar_days.day- 1 ,abonfl.date_first,abonfl.date_last);
     and abonfl_lic.schet=abonfl.schet and abonfl_lic.filter_uch=abonfl.filter_uch;
     and tar_days.num_kot=abonfl_lic.num_kot;
     and tar_days.num_kot=otp_vod_pl.num_kot and  otp_vod_pl.date_month=mes_rasch ;
     and abonfl_lic.schet=cschet and abonfl_lic.filter_uch=uch_per

Работает нормально для любых переменных cschet и uch_per
(последняя строка and abonfl_lic.schet=cschet and abonfl_lic.filter_uch=uch_per не нужна всунул для проверки)
А нужное полное множество
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
sele abonfl_lic.schet,abonfl.is_otp_sch as sch,tar_days.day,;
   iif((abonfl.is_otp and abonfl.is_otp_sch# 0  and ;
         ','+alltr(str(tar_days.day))+',' $ otp_vod_pl.otp and !iif(isnul(avar_otp_dom.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_dom.avar) and !iif(isnul(avar_otp_schet.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_schet.avar)),;
            abonfl.allpl, 000 . 00 ) as pl_sch;
from tar_days,abonfl_lic,otp_vod_pl,abonfl;
  left join avar_otp_dom on avar_otp_dom.num_dom=abonfl_lic.num_dom  and avar_otp_dom.date_month=mes_rasch;
  left join avar_otp_schet on avar_otp_schet.schet=abonfl.schet and avar_otp_schet.filter_uch=abonfl.filter_uch and avar_otp_schet.date_month=mes_rasch;  
wher between(dMes_teck+tar_days.day- 1 ,abonfl.date_first,abonfl.date_last);
     and abonfl_lic.schet=abonfl.schet and abonfl_lic.filter_uch=abonfl.filter_uch;
     and tar_days.num_kot=abonfl_lic.num_kot;
     and tar_days.num_kot=otp_vod_pl.num_kot and  otp_vod_pl.date_month=mes_rasch 
left join-ы начинают гнать (подсовывать последние значения из своих тейблов безо всяких признаков
Помогите если можно
...
Рейтинг: 0 / 0
помогите с запросом
    #36353636
quxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rock-n-rollПочему такой запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
sele abonfl_lic.schet,abonfl.is_otp_sch as sch,tar_days.day,;
   iif((abonfl.is_otp and abonfl.is_otp_sch# 0  and ;
         ','+alltr(str(tar_days.day))+',' $ otp_vod_pl.otp and !iif(isnul(avar_otp_dom.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_dom.avar) and !iif(isnul(avar_otp_schet.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_schet.avar)),;
            abonfl.allpl, 000 . 00 ) as pl_sch;
from tar_days,abonfl_lic,otp_vod_pl,abonfl;
  left join avar_otp_dom on avar_otp_dom.num_dom=abonfl_lic.num_dom  and avar_otp_dom.date_month=mes_rasch;
  left join avar_otp_schet on avar_otp_schet.schet=abonfl.schet and avar_otp_schet.filter_uch=abonfl.filter_uch and avar_otp_schet.date_month=mes_rasch;  
wher between(dMes_teck+tar_days.day- 1 ,abonfl.date_first,abonfl.date_last);
     and abonfl_lic.schet=abonfl.schet and abonfl_lic.filter_uch=abonfl.filter_uch;
     and tar_days.num_kot=abonfl_lic.num_kot;
     and tar_days.num_kot=otp_vod_pl.num_kot and  otp_vod_pl.date_month=mes_rasch ;
     and abonfl_lic.schet=cschet and abonfl_lic.filter_uch=uch_per

Работает нормально для любых переменных cschet и uch_per
(последняя строка and abonfl_lic.schet=cschet and abonfl_lic.filter_uch=uch_per не нужна всунул для проверки)
А нужное полное множество
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
sele abonfl_lic.schet,abonfl.is_otp_sch as sch,tar_days.day,;
   iif((abonfl.is_otp and abonfl.is_otp_sch# 0  and ;
         ','+alltr(str(tar_days.day))+',' $ otp_vod_pl.otp and !iif(isnul(avar_otp_dom.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_dom.avar) and !iif(isnul(avar_otp_schet.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_schet.avar)),;
            abonfl.allpl, 000 . 00 ) as pl_sch;
from tar_days,abonfl_lic,otp_vod_pl,abonfl;
  left join avar_otp_dom on avar_otp_dom.num_dom=abonfl_lic.num_dom  and avar_otp_dom.date_month=mes_rasch;
  left join avar_otp_schet on avar_otp_schet.schet=abonfl.schet and avar_otp_schet.filter_uch=abonfl.filter_uch and avar_otp_schet.date_month=mes_rasch;  
wher between(dMes_teck+tar_days.day- 1 ,abonfl.date_first,abonfl.date_last);
     and abonfl_lic.schet=abonfl.schet and abonfl_lic.filter_uch=abonfl.filter_uch;
     and tar_days.num_kot=abonfl_lic.num_kot;
     and tar_days.num_kot=otp_vod_pl.num_kot and  otp_vod_pl.date_month=mes_rasch 
left join-ы начинают гнать (подсовывать последние значения из своих тейблов безо всяких признаков
Помогите если можно

Начните с малого.
вот эта строчка
Код: plaintext
from tar_days,abonfl_lic,otp_vod_pl,abonfl
-это пересечение или всё-таки соединение?
Вроде как мельком взглянул похоже на соединение,замениете для начала на JOIN-ы-
чтобы хотя-бы самому легче понять что как и в какой полседовательности соединяется.
...
Рейтинг: 0 / 0
помогите с запросом
    #36353658
quxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rock-n-rollПочему такой запрос
Код: plaintext
1.
2.
3.
4.
5.
sele abonfl_lic.schet,abonfl.is_otp_sch as sch,tar_days.day,;
   iif((abonfl.is_
from tar_days,abonfl_lic,otp_vod_pl,abonfl;
  left join avar_otp_dom on avar_otp_dom.num_dom=abonfl_lic.num_dom  and avar_otp_dom.date_month=mes_rasch;
  left join avar_otp_schet on avar_otp_schet.schet=abonfl.schet 

Применяйте в условиях запроса более простые алиасы, вот у меня лично от вашего кода в глазах рябит,например так хотя-бы
Код: plaintext
1.
2.
3.
4.
sele y.schet,w.is_otp_sch as sch,q.day,;
   from abonfl_lic y
  left join avar_otp_dom x on x.num_dom=y.num_dom  and x.date_month=mes_rasch;
  left join avar_otp_schet z on y.schet=y.schet 
...
Рейтинг: 0 / 0
помогите с запросом
    #36353917
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
sele y.schet,w.is_otp_sch,x.day,z.otp,j1.avar,j2.avar;
from tar_days x,abonfl_lic y,otp_vod_pl z,abonfl w;
  left join avar_otp_dom j1 on j1.num_dom=y.num_dom  and j1.date_month=mes_rasch;
  left join avar_otp_schet j2 on j2.schet=y.schet and j2.filter_uch=y.filter_uch and j2.date_month=mes_rasch;  
wher between(dMes_teck+x.day- 1 ,w.date_first,w.date_last);
     and y.schet=w.schet and y.filter_uch=w.filter_uch;
     and x.num_kot=y.num_kot;
     and x.num_kot=z.num_kot and  z.date_month=mes_rasch ;
     and y.schet=cschet and y.filter_uch=uch_per
и сей работает
а сей
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
sele y.schet,w.is_otp_sch,x.day,z.otp,j1.avar,j2.avar;
from tar_days x,abonfl_lic y,otp_vod_pl z,abonfl w;
  left join avar_otp_dom j1 on j1.num_dom=y.num_dom  and j1.date_month=mes_rasch;
  left join avar_otp_schet j2 on j2.schet=y.schet and j2.filter_uch=y.filter_uch and j2.date_month=mes_rasch;  
wher between(dMes_teck+x.day- 1 ,w.date_first,w.date_last);
     and y.schet=w.schet and y.filter_uch=w.filter_uch;
     and x.num_kot=y.num_kot;
     and x.num_kot=z.num_kot and  z.date_month=mes_rasch 
нет
В частности интересует вбираемые j1.avar j2.avar нилл или что-то
замениете для начала на JOIN-ы-
чтобы хотя-бы самому легче понять что как и в какой полседовательности соединяется.
пробую -пробую .. все равно пока ничего не выходит
...
Рейтинг: 0 / 0
помогите с запросом
    #36354008
quxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rock-n-roll
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
sele y.schet,w.is_otp_sch,x.day,z.otp,j1.avar,j2.avar;
from tar_days x,abonfl_lic y,otp_vod_pl z,abonfl w;
  left join avar_otp_dom j1 on j1.num_dom=y.num_dom  and j1.date_month=mes_rasch;
  left join avar_otp_schet j2 on j2.schet=y.schet and j2.filter_uch=y.filter_uch and j2.date_month=mes_rasch;  
wher between(dMes_teck+x.day- 1 ,w.date_first,w.date_last);
     and y.schet=w.schet and y.filter_uch=w.filter_uch;
     and x.num_kot=y.num_kot;
     and x.num_kot=z.num_kot and  z.date_month=mes_rasch ;
     and y.schet=cschet and y.filter_uch=uch_per
и сей работает
а сей
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
sele y.schet,w.is_otp_sch,x.day,z.otp,j1.avar,j2.avar;
from tar_days x,abonfl_lic y,otp_vod_pl z,abonfl w;
  left join avar_otp_dom j1 on j1.num_dom=y.num_dom  and j1.date_month=mes_rasch;
  left join avar_otp_schet j2 on j2.schet=y.schet and j2.filter_uch=y.filter_uch and j2.date_month=mes_rasch;  
wher between(dMes_teck+x.day- 1 ,w.date_first,w.date_last);
     and y.schet=w.schet and y.filter_uch=w.filter_uch;
     and x.num_kot=y.num_kot;
     and x.num_kot=z.num_kot and  z.date_month=mes_rasch 
нет
В частности интересует вбираемые j1.avar j2.avar нилл или что-то
замениете для начала на JOIN-ы-
чтобы хотя-бы самому легче понять что как и в какой полседовательности соединяется.
пробую -пробую .. все равно пока ничего не выходит
Не вижу замену на джоины. Не есть комильфо смешивать не явное соединение(у вас через were) с явными. Должно получиться типа такого,если не напутал нигде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
sele y.schet,w.is_otp_sch,x.day,z.otp,j1.avar,j2.avar;
from tar_days x join abonfl_lic y on x.num_kot=y.num_kot
join otp_vod_pl z on  x.num_kot=z.num_kot
join abonfl w on y.schet=w.schet and y.filter_uch=w.filter_uch
left join avar_otp_dom j1 on j1.num_dom=y.num_dom  and j1.date_month=mes_rasch;
left join avar_otp_schet j2 on j2.schet=y.schet and j2.filter_uch=y.filter_uch and j2.date_month=mes_rasch;  
where between(dMes_teck+x.day- 1 ,w.date_first,w.date_last);
and z.date_month=mes_rasch 

А что собственно хотим получить?
В вашем первом случае вы просто выбирает строки где
Код: plaintext
x.num_kot=z.num_kot and  z.date_month=mes_rasch 
и именно в них так получилось что ваши данные отвечают условиям и j1.avar j2.avar такие какие надо -посмотрите внимательно на второй запрос и найдите данные отвечающие условию
Код: plaintext
x.num_kot=z.num_kot and  z.date_month=mes_rasch 
,
а во втором случае этого условия нет, а по условию соединения в запросе всегда будут выводится все строки из табл j1,j2 если не отсечь некоторые из них в условии WHERE.
В джоинах соединяем,в where-отсекаем.
...
Рейтинг: 0 / 0
помогите с запросом
    #36354019
quxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
quxix а по условию соединения в запросе всегда будут выводится все строки из табл j1,j2
Тьфу ..
все строки из полученных соединений до j1,j2 а не найденные соответствия отобразятся j1.null,j2.null
...
Рейтинг: 0 / 0
помогите с запросом
    #36354021
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll,
Вы хоть понимаете что Вы делаете?
Left join будет действовать на на последнюю таблицу в списке.
Код: plaintext
1.
2.
3.
4.
 ( 1 )
abonfl w 
left join avar_otp_dom j1 on j1.num_dom=y.num_dom  and j1.date_month=mes_rasch;
left join avar_otp_schet j2 on j2.schet=y.schet and j2.filter_uch=y.filter_uch and j2.date_month=mes_rasch;

А, судя по условию связи, надо джойнить с
Код: plaintext
1.
abonfl_lic y

Первый запрос работает только потому, что выполняется условие отбора
Код: plaintext
1.
 and y.schet=cschet and y.filter_uch=uch_per
(и ему наверняка(!) удовлетворяет только одна запись)
Тогда (1) преобразуется к
Код: plaintext
1.
2.
3.
4.
 ( 2 )
abonfl w 
left join avar_otp_dom j1 on j1.num_dom=y.num_dom  and j1.date_month=mes_rasch;
left join avar_otp_schet j2 on j2.schet=cschet and j2.filter_uch=uch_per and j2.date_month=mes_rasch;

В общем, рисуйте схему как будут связаны ваши таблицы и переделывайте запрос!!!
...
Рейтинг: 0 / 0
помогите с запросом
    #36354934
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll(...) left join-ы начинают гнать (подсовывать последние значения из своих тейблов безо всяких признаков
Помогите если можно
Вы делаете распространенную ошибку "переводя" термин "left join", как "присоединить один-к-одному". Т.е. Вы предполагаете, что сначала выбираются записи из "основной" таблицы, а потом к этим, выбранным записям, "присоединяются" записи из "дополнительной" таблицы ничего не меняя в основной выборке.

На самом деле, ключевое слово "left" относится только к тем записям, для которых НЕ НАЙДЕНО соответствия в условии объединения ON.

Другими словами, все внешние объединения (left, right, full) возвращают все то же самое, что и inner, но в ДОПОЛНЕНИЕ к тому, что вернуло бы inner добавляет еще кое-какие записи...

Чтобы было понятно, простой пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create cursor tab1 (f1 i, f2 c( 10 ))
insert into tab1 values ( 1 , "one")
insert into tab1 values ( 1 , "two")
insert into tab1 values ( 3 , "three")

create cursor tab2 (f1 i, f2 c( 10 ))
insert into tab2 values ( 1 , "one")
insert into tab2 values ( 1 , "two")

select tab1.*, tab2.* ;
from tab1 ;
left join tab2 on tab1.f1 = tab2.f1

Обратите внимание, что в части объединения по коду 1 LEFT JOIN ведет себя точно также, как и INNER JOIN. Т.е. просто берет все возможные пересечения значений и возвращает 4 записи.

Отличия от INNER JOIN возникают только в отношении кода 3, для которого нет соответствия в "правой" таблице. Т.е. произошло "присоединение к левой части", даже если нет соответствия в "правой".

Другими словами, вероятно, у Вас связь между таблицами много-ко-многим. Но, поскольку записи не упорядочены, то Вам КАЖЕТСЯ, что left join выдает что-то не то. Попробуйте добавть к выборке ORDER BY и посмотрите, нет ли "дублей"

=====================================================================
Вместо конструкции IIF(IsNul(), ..., ...) проще использовать функцию NVL(..., ...)

т.е. вместо

Код: plaintext
iif(isnul(avar_otp_dom.avar), .f., ','+alltr(str(tar_days.day))+',' $ avar_otp_dom.avar) 

можно написать так

Код: plaintext
','+alltr(str(tar_days.day))+',' $ NVL(avar_otp_dom.avar,"")

Тогда Ваш исходный запрос будет выглядеть так

Код: 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.
select ;
	abonfl_lic.schet, ;
	abonfl.is_otp_sch as sch, ;
	tar_days.day, ;
   	iif(abonfl.is_otp ;
		and abonfl.is_otp_sch# 0  ;
		and ','+alltr(str(tar_days.day))+',' $ otp_vod_pl.otp ;
		and not ','+alltr(str(tar_days.day))+',' $ NVL(avar_otp_dom.avar,"") ;
		and not ','+alltr(str(tar_days.day))+',' $ NVL(avar_otp_schet.avar,"") ;
            abonfl.allpl,  000 . 00 ) as pl_sch ;
from tar_days ;
inner join abonfl_lic on tar_days.num_kot=abonfl_lic.num_kot ;
inner join otp_vod_pl on tar_days.num_kot=otp_vod_pl.num_kot ;
inner join abonfl on abonfl_lic.schet=abonfl.schet ;
		and abonfl_lic.filter_uch=abonfl.filter_uch ;
left join avar_otp_dom on avar_otp_dom.num_dom=abonfl_lic.num_dom  ;
			and avar_otp_dom.date_month=mes_rasch ;
left join avar_otp_schet on avar_otp_schet.schet=abonfl.schet ;
			and avar_otp_schet.filter_uch=abonfl.filter_uch ;
			and avar_otp_schet.date_month=mes_rasch ;
where between(dMes_teck+tar_days.day- 1 , abonfl.date_first, abonfl.date_last) ;
	and  otp_vod_pl.date_month=mes_rasch ;
	and abonfl_lic.schet=cschet ;
	and abonfl_lic.filter_uch=uch_per

=====================================================================

Теперь, после того, как запрос приобрел более-менее читабельный вид, пытаемся понять, зачем же Вам понадобился LEFT JOIN? Т.е. пытаемся "перевести" на "человеческий" язык Ваш запрос.

Судя по коду, Вам просто надо поставить значение 0, если есть соответствующая запись в таблицах, присоединенных по LEFT. Так может, будет достаточно ИСКЛЮЧИТЬ записи, у которых есть связь? Т.е. вместо LEFT JOIN использовать WHERE NOT EXISTS(...)?

Правда, тут надо знать, для чего будет впоследствии использоваться данная выборка. Можно ли именно исключить "нулевые" записи или они тем не менее нужны и именно нулевые?
...
Рейтинг: 0 / 0
помогите с запросом
    #36358170
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
благодарю за критику вроде получилось
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
   sum(iif((abonfl.is_otp and abonfl.is_otp_sch# 0  and ;
         ','+alltr(str(tar_days.day))+',' $ otp_vod_pl.otp and !iif(isnul(avar_otp_dom.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_dom.avar) and !iif(isnul(avar_otp_schet.avar),.f.,','+alltr(str(tar_days.day))+',' $ avar_otp_schet.avar)),;&&если в этом дне отопление поступало
            abonfl.allpl, 000 . 00 )) as pl_sch;
from abonfl_lic;
inner join abonfl on abonfl_lic.schet=abonfl.schet and abonfl_lic.filter_uch=abonfl.filter_uch;
inner join tar_days on tar_days.num_kot=abonfl_lic.num_kot and between(dMes_teck+tar_days.day- 1 ,abonfl.date_first,abonfl.date_last);
inner join otp_vod_pl on otp_vod_pl.num_kot=abonfl_lic.num_kot and otp_vod_pl.date_month=mes_rasch;
left join avar_otp_dom on avar_otp_dom.num_dom=abonfl_lic.num_dom  and avar_otp_dom.date_month=mes_rasch ;
left join avar_otp_schet on avar_otp_schet.schet=abonfl_lic.schet and avar_otp_schet.filter_uch=abonfl_lic.filter_uch and avar_otp_schet.date_month=mes_rasch;
по поводуВместо конструкции IIF(IsNul(), ..., ...) проще использовать функцию NVL(..., ...) и прочего рассмотрю обязательно но щас не до этого. Срочно! Возможно ли подобный тейбл
Код: plaintext
1.
2.
3.
4.
5.
 creat curs tabel (schet n( 6 ),pl n( 3 ),rec n( 3 ))
 insert into tabel(schet,pl,rec)values( 100000 , 50 , 1 )
 insert into tabel(schet,pl,rec)values( 100001 , 100 , 2 )
 insert into tabel(schet,pl,rec)values( 100000 , 50 , 3 )
 insert into tabel(schet,pl,rec)values( 100000 , 50 , 4 )
 insert into tabel(schet,pl,rec)values( 100000 , 50 , 5 ) 
обработать запросом по принципу для всех schet перезаписать pl найтя для начала с минимальным rec оставить запись без изменения и остальные rec-и счета перезаписать 0 в случае если значение записи <некой константы(const), в противном случаее записать const, запомнить разницу и прыгнуть к следующей строке счета. прделать тоже самое предварительно записав на место rec саму разницу. Т.е. если const=23 должно получиться
Код: plaintext
1.
2.
3.
4.
5.
6.
 creat curs tabel2 (schet n( 6 ),pl n( 3 ),rec n( 3 ))
 insert into tabel(schet,pl,rec)values( 100000 , 23 , 1 )
 insert into tabel(schet,pl,rec)values( 100001 , 23 , 2 )
 insert into tabel(schet,pl,rec)values( 100000 , 23 , 3 )
 insert into tabel(schet,pl,rec)values( 100000 , 4 , 4 )
 insert into tabel(schet,pl,rec)values( 100000 , 0 , 5 ) 
С точки зрения циклов сканов и проч задача вообще детская.. но записей огромное количество.. нужен запрос
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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