powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом
14 сообщений из 14, страница 1 из 1
Помогите с запросом
    #33458971
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT S_oper.fio, S_bd_kok.p_r, S_bd_kok.sum_pr, Kassa.name_val,;
  IIF(S_bd_kok.p_r= 0 ,S_bd_kok.sum_pr, 0 ) AS prihod,;
  IIF(S_bd_kok.p_r= 1 ,S_bd_kok.sum_pr, 0 ) AS rashod;
 FROM ;
     s_oper ;
    INNER JOIN DBKASSIR!S_BD_KOK ;
   ON  S_oper.kod = S_bd_kok.kod_oper ;
    INNER JOIN kassa ;
   ON  Kassa.numv = S_bd_kok.kod_valc;
 ORDER BY Kassa.name_val, S_bd_kok.p_r, S_oper.fio

почему-то не работает поле rashod, вместо сумм из поля Sum_pr стоят звёздочки.

Fio P_r Sum_pr Name_val Prihod Rashod
Гордеева Л.Ю. 1 42.00 Доллар США 0.00 *
Советова В.И. 1 89.00 Доллар США 0.00 *
Ермолаева М.П. 0 78.00 Норвежская крона 78.00 0
...
Рейтинг: 0 / 0
Помогите с запросом
    #33459012
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT S_oper.fio, S_bd_kok.p_r, S_bd_kok.sum_pr, Kassa.name_val,;
  IIF(S_bd_kok.p_r= 0 ,S_bd_kok.sum_pr,S_bd_kok.sum_pr-S_bd_kok.sum_pr) AS prihod,;
  IIF(S_bd_kok.p_r= 1 ,S_bd_kok.sum_pr,S_bd_kok.sum_pr-S_bd_kok.sum_pr) AS rashod;
 FROM ;
     s_oper ;
    INNER JOIN DBKASSIR!S_BD_KOK ;
   ON  S_oper.kod = S_bd_kok.kod_oper ;
    INNER JOIN kassa ;
   ON  Kassa.numv = S_bd_kok.kod_valc;
 ORDER BY Kassa.name_val, S_bd_kok.p_r, S_oper.fio
...
Рейтинг: 0 / 0
Помогите с запросом
    #33459017
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черт, тэги и не кажут в коде или руки кривые
...
Рейтинг: 0 / 0
Помогите с запросом
    #33459046
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вах! Спасибо работает. :)
А почему так хитро?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33459063
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igrok4Вах! Спасибо работает. :)
А почему так хитро?
Потому что при срабатывании IIF в первой записи в 0 длина поля равна 1, а при IIF -> S_bd_kok.sum_pr размерность поля другая (из таблицы), но размерность при 0 уже создана, вот и *.
А AleksMed подставил тебе вычисление:
Код: plaintext
S_bd_kok.sum_pr-S_bd_kok.sum_pr
т.е. размерность вычислилась Fox-ом.
...
Рейтинг: 0 / 0
Помогите с запросом
    #33459790
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если VFP 9.0, то лучше использовать явное преобразование типов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT S_oper.fio, S_bd_kok.p_r, S_bd_kok.sum_pr, Kassa.name_val,;
  CAST(IIF(S_bd_kok.p_r= 0 ,S_bd_kok.sum_pr, 0 ) AS N( 18 , 2 )) AS prihod,;
  CAST(IIF(S_bd_kok.p_r= 1 ,S_bd_kok.sum_pr, 0 ) AS N( 18 , 2 )) AS rashod;
 FROM ;
     s_oper ;
    INNER JOIN DBKASSIR!S_BD_KOK ;
   ON  S_oper.kod = S_bd_kok.kod_oper ;
    INNER JOIN kassa ;
   ON  Kassa.numv = S_bd_kok.kod_valc;
 ORDER BY Kassa.name_val, S_bd_kok.p_r, S_oper.fio
С уважением, Алексей
...
Рейтинг: 0 / 0
Помогите с запросом
    #33459943
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-KЕсли VFP 9.0, то лучше использовать явное преобразование типов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT S_oper.fio, S_bd_kok.p_r, S_bd_kok.sum_pr, Kassa.name_val,;
  CAST(IIF(S_bd_kok.p_r= 0 ,S_bd_kok.sum_pr, 0 ) AS N( 18 , 2 )) AS prihod,;
  CAST(IIF(S_bd_kok.p_r= 1 ,S_bd_kok.sum_pr, 0 ) AS N( 18 , 2 )) AS rashod;
 FROM ;
     s_oper ;
    INNER JOIN DBKASSIR!S_BD_KOK ;
   ON  S_oper.kod = S_bd_kok.kod_oper ;
    INNER JOIN kassa ;
   ON  Kassa.numv = S_bd_kok.kod_valc;
 ORDER BY Kassa.name_val, S_bd_kok.p_r, S_oper.fio
С уважением, Алексей

Ну это всё равно, что на младших версиях использовать трюк с прибавлением к полю нечто вроде 00000000.00, что та, что тут нужно знать размерность поля, что бы получить правильную выборку.
...
Рейтинг: 0 / 0
Помогите с запросом
    #33459948
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы.
Теперь проблема другая. Хотел этот запрос использовать для построения отчёта, но VFP не хочет брать его в качестве источника данных.
Попробовал построить аналогичный Local Views, но при его просмотре нет полей Prihod и Rashod. :-(
Может подскажете как тут лучше сделать?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33460010
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igrok4Спасибо за ответы.
Теперь проблема другая. Хотел этот запрос использовать для построения отчёта, но VFP не хочет брать его в качестве источника данных.?
SELECT должен быть в курсор, а курсор источником для отчёта

Попробовал построить аналогичный Local Views, но при его просмотре нет полей Prihod и Rashod. :-(
Может подскажете как тут лучше сделать?
Через построитель создава? И поля эти не описал, да? Вот их и нет.
...
Рейтинг: 0 / 0
Помогите с запросом
    #33460033
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksMed SELECT должен быть в курсор, а курсор источником для отчёта

Прошу прощения за неосведомлённость, а это как сделать?

AleksMed Через построитель создава? И поля эти не описал, да? Вот их и нет.
Может конечно речь не о том, но построитель сделал вот что:
Код: plaintext
1.
2.
3.
4.
5.
6.
DBSetProp(ThisView+".prihod","Field","DataType","N(15,2)")
DBSetProp(ThisView+".prihod","Field","KeyField",.F.)
DBSetProp(ThisView+".prihod","Field","Updatable",.F.)

DBSetProp(ThisView+".rashod","Field","DataType","N(16,2)")
DBSetProp(ThisView+".rashod","Field","KeyField",.F.)
DBSetProp(ThisView+".rashod","Field","Updatable",.F.)

Это не описание полей?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33460057
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT S_oper.fio, S_bd_kok.p_r, S_bd_kok.sum_pr, Kassa.name_val,;
  IIF(S_bd_kok.p_r= 0 ,S_bd_kok.sum_pr,S_bd_kok.sum_pr-S_bd_kok.sum_pr) AS prihod,;
  IIF(S_bd_kok.p_r= 1 ,S_bd_kok.sum_pr,S_bd_kok.sum_pr-S_bd_kok.sum_pr) AS rashod;
 FROM ;
     s_oper ;
    INNER JOIN DBKASSIR!S_BD_KOK ;
   ON  S_oper.kod = S_bd_kok.kod_oper ;
    INNER JOIN kassa ;
   ON  Kassa.numv = S_bd_kok.kod_valc;
 ORDER BY Kassa.name_val, S_bd_kok.p_r, S_oper.fio ;
INTO CURSOR cForReport

2.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create sql view lvForReport as ;
SELECT S_oper.fio, S_bd_kok.p_r, S_bd_kok.sum_pr, Kassa.name_val,;
  IIF(S_bd_kok.p_r= 0 ,S_bd_kok.sum_pr,S_bd_kok.sum_pr-S_bd_kok.sum_pr) AS prihod,;
  IIF(S_bd_kok.p_r= 1 ,S_bd_kok.sum_pr,S_bd_kok.sum_pr-S_bd_kok.sum_pr) AS rashod;
 FROM ;
     s_oper ;
    INNER JOIN DBKASSIR!S_BD_KOK ;
   ON  S_oper.kod = S_bd_kok.kod_oper ;
    INNER JOIN kassa ;
   ON  Kassa.numv = S_bd_kok.kod_valc;
 ORDER BY Kassa.name_val, S_bd_kok.p_r, S_oper.fio
...
Рейтинг: 0 / 0
Помогите с запросом
    #33460201
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
А вот так чтобы "пощупать" и сохранить в виде файлика или чего-то ещё в самом проекте, чтобы при запуске обновлялся и начинал выборку делать, никак нельзя?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33460214
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igrok4Спасибо!
А вот так чтобы "пощупать" и сохранить в виде файлика или чего-то ещё в самом проекте, чтобы при запуске обновлялся и начинал выборку делать, никак нельзя?

Если ты делаешь через LV, то оно будет содержать актуальную информацию на момент его открытия, т.е. USE lvName.
Если нужно обновить данные в LV, то выполняется REQUERY("lvName")
...
Рейтинг: 0 / 0
Помогите с запросом
    #33460273
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok. Спасибо.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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