powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите разобраться с Sql -м и оптимизировать
3 сообщений из 3, страница 1 из 1
помогите разобраться с Sql -м и оптимизировать
    #33206818
Фотография DidarBK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет всем !!!
БД BDE(FoxPro,dbf),с начала я создаю таблицу Tmp,('CREATE TABLE TMP....)
и туда заливаю данные,т.е хочу залить так:
INSERT INTO TMP(data,nmbpzd,indpzd,vg,wght)
select distinct data,nmbpzd,indpzd,vg,wght
from vag0805
Where substring(indpzd from 1 for 4)="6656" and substring(indpzd from 8 for 4)="6669" and kop="01" and stop="66560" and nmbpzd BETWEEN "3451"
and "3488" and (stnzn BETWEEN "2542" and "2596" or stnzn BETWEEN "2675" and "2685" or stnzn BETWEEN "2700" and "2781"
or stnzn BETWEEN "6475" and "6572" or stnzn BETWEEN "6600" and "6639" or stnzn ="6665" or stnzn BETWEEN "6669" and "9981")пишет:
Type mismatch in expression.
может я чё то пропустил????
...
Рейтинг: 0 / 0
помогите разобраться с Sql -м и оптимизировать
    #33206906
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что это за синтаксиси такой?

substring(indpzd from 1 for 4)

Может надо так?

substring(indpzd,1, 4)
...
Рейтинг: 0 / 0
помогите разобраться с Sql -м и оптимизировать
    #33207023
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синтаксис вида

INSERT INTO ..
SELECT ... FROM ...

Если предполагается вставка более одной записи поддерживается в FoxPro начиная с 9 версии. В младших версиях так можно вставить только по одной записи за раз.

Функция выделения фрагмента строки имеет синтаксис

SubStr("Строка","первый символ", "количество символов")

Если выделение идет с самого первого (слева) символа, то можно использовать функцию

LEFT("Строка", "количество символов от самого начала")

Если я правильно понимаю, то конструкцию вида

substring(indpzd from 1 for 4)="6656" and substring(indpzd from 8 for 4)="6669"

Можно записать примерно так

LEFT(indpzd,8) = "6656"+"6669"
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите разобраться с Sql -м и оптимизировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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