powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом!!!
16 сообщений из 16, страница 1 из 1
Помогите с запросом!!!
    #36010002
Sour
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые форумчане прошу помощи в простом запросе поскольку в Фоксе несилен, есть бухгалтерская прога на Фоксе и нужно сделать отчет

собственно запрос
Код: 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
      ml.marka as postav,
      ml.grup as sgrup,
      ml.nnum as snnum,
      ml.name as sartic,
      ml.ed as ed,
      mdm.skolout as rskolout,
      mdm.ssum as rssum,
      mdm.ssumout as rssumout

from sclad_mlabel ml

join (select
      md.grup,
      md.nnum,
      SUM(IIF(md.vid ='1' and md.type ='5',-md.kolout,(IIF(md.vid ='2' and md.type ='1',md.kolout, 0 )))) as skolout,
      SUM(IIF(md.vid ='1' and md.type ='5',-md.sum,(IIF(md.vid ='2' and md.type ='1',md.sum, 0 )))) as ssum,
      SUM(IIF(md.vid ='1' and md.type ='5',-md.sumout,(IIF(md.vid ='2' and md.type ='1',md.sumout, 0 )))) as ssumout
      from sclad_mdocm md
      into cursor mdm
      where (md.date between :Sdate and :edate) and md.schet_a like'361%%' and md.sclad=:sclad and md.sclad<>'000010' and md.sclad<>'000021' and md.sclad<>'000022' and md.sclad<>'000023'
      group by md.grup,md.nnum) mdm on ml.grup = mdm.grup and ml.nnum=mdm.nnum

group by ml.marka,ml.grup,ml.nnum,ml.name,ml.ed,mdm.skolout,mdm.ssum,mdm.ssumout

Приложение кричит что синтаксическая ошибка!!! ткните носом где именно!!!
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010018
ПД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:Sdate and :edate
вроде вот эти двоеточия... не из фокса
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010044
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем проблема?
Ну замените :Sdate and :edate на переменные, которые определяют диапазон дат запроса и должно работать.
С уважением, Алексей
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010071
Sour
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-K,

Через : обозначается переменная которая передается с пользовательской формы
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010093
Sour
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-K,

Собственно данный скрипт я пишу именно у бух проге, в ней есть инструмент для написания запросов к БД
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010124
Березовский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чё то Вы не то говорите
:Sdate - это переменная?
:Sdate=1 выдаст ошибку :)
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010139
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще как то все интересно ...

это то зачем?

Код: plaintext
group by ml.marka,ml.grup,ml.nnum,ml.name,ml.ed,mdm.skolout,mdm.ssum,mdm.ssumout

distinct что ли?
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010144
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
from sclad_mdocm md
into cursor mdm

купите хорошую книгу ... хотя может в последних версиях так и можно ...
года 3 не прикасаюсь к фоксу но такого вроде не было
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010457
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SourПриложение кричит что синтаксическая ошибка!!! ткните носом где именно!!!
Текст ошибки приведите, как есть.

Иначе, могу сказать только, что ваш запрос - это не диалект фокса.
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010473
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sour,

Код: 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
      ml.marka as postav,
      ml.grup as sgrup,
      ml.nnum as snnum,
      ml.name as sartic,
      ml.ed as ed,
      mdm.skolout as rskolout,
      mdm.ssum as rssum,
      mdm.ssumout as rssumout

from sclad_mlabel ml

join (select
      md.grup,
      md.nnum,
      SUM(IIF(md.vid ='1' and md.type ='5',-md.kolout,(IIF(md.vid ='2' and md.type ='1',md.kolout, 0 )))) as skolout,
      SUM(IIF(md.vid ='1' and md.type ='5',-md.sum,(IIF(md.vid ='2' and md.type ='1',md.sum, 0 )))) as ssum,
      SUM(IIF(md.vid ='1' and md.type ='5',-md.sumout,(IIF(md.vid ='2' and md.type ='1',md.sumout, 0 )))) as ssumout
      from sclad_mdocm md
      where (md.date between :Sdate and :edate) and md.schet_a like'361%%' and md.sclad=:sclad and md.sclad<>'000010' and md.sclad<>'000021' and md.sclad<>'000022' and md.sclad<>'000023'
      group by md.grup,md.nnum) mdm on ml.grup = mdm.grup and ml.nnum=mdm.nnum

group by ml.marka,ml.grup,ml.nnum,ml.name,ml.ed,mdm.skolout,mdm.ssum,mdm.ssumout
into cursor mdm NOFILTER

И еще... В глаза бросается, то что у вас "into cursor mdm" где-то не там стоит
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010482
Tohan_ORA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У вас внутри подзапроса стоит команда выбора данных в курсор-это видимо неверно, да и запрос можно привести к более читабельному виду, переменные также д.б. определены на момент выполнения запроса,попробуйте вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Select distinct ml.marka as postav,ml.grup as sgrup,ml.nnum as snnum,ml.name as sartic,
      ml.ed as ed,mdm.skolout as rskolout,mdm.ssum as rssum,mdm.ssumout as rssumout
from sclad_mlabel ml
join (select grup,nnum,
      SUM(Iсase(md.vid ='1' and md.type ='5',-md.kolout,md.vid ='2' and md.type ='1',md.kolout, 0 ) skolout,
      SUM(Icase(vid ='1' and type ='5',-sum,vid ='2' and type ='1',sum, 0 ) ssum,
      SUM(Icase(vid ='1' and type ='5',-sumout,vid ='2' and type ='1',sumout, 0 ) ssumout
      from sclad_mdocm 
      where (date between :Sdate and :edate) and schet_a like'361%%' and sclad=:sclad and sclad<>'000010' and sclad<>'000021' and sclad<>'000022' and sclad<>'000023'
      group by grup,nnum) mdm 
on ml.grup = mdm.grup and ml.nnum=mdm.nnum
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010495
Tohan_ORA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tohan_ORAУ вас внутри подзапроса стоит команда выбора данных в курсор-это видимо неверно, да и запрос можно привести к более читабельному виду, переменные также д.б. определены на момент выполнения запроса,попробуйте вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Select distinct ml.marka postav,ml.grup sgrup,ml.nnum snnum,ml.name sartic,
      ml.ed ed,mdm.skolout rskolout,mdm.ssum rssum,mdm.ssumout rssumout
from sclad_mlabel ml
join (select grup,nnum,
      SUM(Iсase(md.vid ='1' and md.type ='5',-md.kolout,md.vid ='2' and md.type ='1',md.kolout, 0 ) skolout,
      SUM(Icase(vid ='1' and type ='5',-sum,vid ='2' and type ='1',sum, 0 ) ssum,
      SUM(Icase(vid ='1' and type ='5',-sumout,vid ='2' and type ='1',sumout, 0 ) ssumout
      from sclad_mdocm 
      where (date between :Sdate and :edate) and schet_a like'361%%' and sclad=:sclad and sclad<>'000010' and sclad<>'000021' and sclad<>'000022' and sclad<>'000023'
      group by grup,nnum) md 
on ml.grup = mdm.grup and ml.nnum=mdm.nnum
into cursor mdm

Да,забыл что вы данные выбираете в курсор. :-)
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010514
Tohan_ORA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Select distinct ml.marka postav,ml.grup sgrup,ml.nnum snnum,ml.name sartic,
      ml.ed ed,mdm.skolout rskolout,mdm.ssum rssum,mdm.ssumout rssumout
from sclad_mlabel ml
join (select grup,nnum,
      SUM(Iсase(md.vid ='1' and md.type ='5',-md.kolout,md.vid ='2' and md.type ='1',md.kolout, 0 ) skolout,
      SUM(Icase(vid ='1' and type ='5',-sum,vid ='2' and type ='1',sum, 0 ) ssum,
      SUM(Icase(vid ='1' and type ='5',-sumout,vid ='2' and type ='1',sumout, 0 ) ssumout
      from sclad_mdocm 
      where (date between :Sdate and :edate) and schet_a like'361%%' and sclad=:sclad and sclad<>'000010' and sclad<>'000021' and sclad<>'000022' and sclad<>'000023'
      group by grup,nnum) mdm 
on ml.grup = mdm.grup and ml.nnum=mdm.nnum
into cursor mdm
Тьфу! Совсем запутался с вашими одноименными курсорами-алиасами :-)
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36010685
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае, подзапрос вообще не нужен

Код: 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.
local ldStartDate, ldEndDate, lcSclad

* Тестовые данные
ldStartDate = date()- 10 
ldEndDate = date()
lcSclad = '000001'

select ;
      ml.marka as postav, ;
      ml.grup as sgrup, ;
      ml.nnum as snnum, ;
      ml.name as sartic, ;
      ml.ed as ed, ;
      SUM(IIF(md.vid ='1' and md.type ='5',-md.kolout,(IIF(md.vid ='2' and md.type ='1',md.kolout, 0 )))) as rskolout, ;
      SUM(IIF(md.vid ='1' and md.type ='5',-md.sum,(IIF(md.vid ='2' and md.type ='1',md.sum, 0 )))) as rssum, ;
      SUM(IIF(md.vid ='1' and md.type ='5',-md.sumout,(IIF(md.vid ='2' and md.type ='1',md.sumout, 0 )))) as rssumout ;
from sclad_mlabel ml ;
inner join sclad_mdocm md on ml.grup = md.grup and ml.nnum=md.nnum ;
where 	md.date between m.ldStartDate and m.ldEndDate ;
	and md.schet_a like '%361%' ;
	and md.sclad = m.lcSclad ;
	and md.sclad not in ('000010', '000021', '000022', '000023') ;
group by ;
	ml.marka, ;
	ml.grup, ;
	ml.nnum, ;
	ml.name, ;
	ml.ed

Хотя все-таки желательно сообщать версию FoxPro.
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36011093
Sour
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМВ данном случае, подзапрос вообще не нужен

Код: 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.
local ldStartDate, ldEndDate, lcSclad

* Тестовые данные
ldStartDate = date()- 10 
ldEndDate = date()
lcSclad = '000001'

select ;
      ml.marka as postav, ;
      ml.grup as sgrup, ;
      ml.nnum as snnum, ;
      ml.name as sartic, ;
      ml.ed as ed, ;
      SUM(IIF(md.vid ='1' and md.type ='5',-md.kolout,(IIF(md.vid ='2' and md.type ='1',md.kolout, 0 )))) as rskolout, ;
      SUM(IIF(md.vid ='1' and md.type ='5',-md.sum,(IIF(md.vid ='2' and md.type ='1',md.sum, 0 )))) as rssum, ;
      SUM(IIF(md.vid ='1' and md.type ='5',-md.sumout,(IIF(md.vid ='2' and md.type ='1',md.sumout, 0 )))) as rssumout ;
from sclad_mlabel ml ;
inner join sclad_mdocm md on ml.grup = md.grup and ml.nnum=md.nnum ;
where 	md.date between m.ldStartDate and m.ldEndDate ;
	and md.schet_a like '%361%' ;
	and md.sclad = m.lcSclad ;
	and md.sclad not in ('000010', '000021', '000022', '000023') ;
group by ;
	ml.marka, ;
	ml.grup, ;
	ml.nnum, ;
	ml.name, ;
	ml.ed

Хотя все-таки желательно сообщать версию FoxPro.

Спасибо то что нужно!!!! как еще добавить один параметр на выборку проблемма в том что параметр храниться в поле которое имеет вид "хххххх-хх-ххх" сегмент "хххххх" и есть условие
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #36011355
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SourСпасибо то что нужно!!!! как еще добавить один параметр на выборку проблемма в том что параметр храниться в поле которое имеет вид "хххххх-хх-ххх" сегмент "хххххх" и есть условие
Ну, судя по описанию, задаются первые символы значения. Значит, в общем случае, это будет условие вида

Код: plaintext
1.
2.
3.
4.
5.
6.
LOCAL lcMyVar
lcMyVar = "хххххх"

SELECT ...
WHERE ...
	AND MyField LIKE m.lcMyVar+'%'

Можно и без Like, простым сравнением. Но при использовании прямого сравнения обязательно должна быть настройка

SET ANSI OFF

И, хотя это настройка по умолчанию, тем не менее, это надо будет проверять. А использование Like от нее не зависит.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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