powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Результат запроса в переменную
36 сообщений из 36, показаны все 2 страниц
Результат запроса в переменную
    #37427642
Вопрос. Как присвоить переменной результат запроса:
select COUNT (*) FROM table
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427656
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлегВопрос. Как присвоить переменной результат запроса:
select COUNT (*) AS quantity FROM table INTO CURSOR MyCursor
<переменная> = MyCursor.quantity
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427677
IgorNG,

Alias 'MyCursor' is not found

Поподробней распишите пожалуйста
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427681
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлег,

select COUNT (*) AS quantity FROM table INTO CURSOR MyCursor
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427700
Написал, потом только заметил) Спасибо!
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427722
И еще вопрос. Чтоб тему другую не создавать. Нужно выбрать количество записей, которые соответствуют условию: ну допустим table1 > '10' и и в поле table2 значения не повторялись. Подскажите плиииз)
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427736
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлег,

Код: plaintext
1.
2.
3.
select
count(distinct ...)
from ...
where ...
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427738
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуть не забыл :)

Код: plaintext
1.
2.
3.
4.
select
count(distinct ...)
from ...
where ...
group by ...
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427750
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлег,

SELECT DISTINCT * FROM table1 WHERE VAL(t1) > 10 INTO CURSOR c1 && Если поле символьное
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427753
tanglir,

SELECT COUNT(disctinct reg_nom) FROM I:\BACKUP-SERVER\BASED\priem WHERE spec_tnum like '93%' GROUP BY reg_nom

Что не так? Выдает ошибку
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427770
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Что не так?
Возьмите имя таблицы в кавычки

>Выдает ошибку
Возьмите за правило выкладывать текст ошибок сюда. Отвечающим будет проще вас понять.
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427772
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп. Вы группируете по номеру и пытаетесь найти количество этих же номеров? Прочитайте в хелпе про групбай.
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427774
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNGОлегОлегОлег,

SELECT DISTINCT * FROM table1 WHERE VAL(t1) > 10 INTO CURSOR c1 && Если поле символьное
SELECT c1
<переменная> = RECCOUNT()
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427780
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот IgorNG, похоже, написал то, что вам нужно, с небольшой поправкой:

Код: plaintext
SELECT count(DISTINCT *) as cnt FROM table1 WHERE VAL(t1) >  10  INTO CURSOR c1
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427783
tanglir,

Ошибка такая: Function name is missing )

Все равно, та же ошибка
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427792
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлег,

тип поля t1 какой? если число, то уберите val()
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427796
SELECT count(DISTINCT *) as cnt FROM priem WHERE spec_tnum like '93%' INTO CURSOR c1

Missing expression.

Опять не получилось
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427804
ОлегОлегОлег,

Тип поля - число. Условие запроса - WHERE spec_tnum like '93%' . Мб из-за этого не получается...
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427808
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлег,

нуядаженезнаю (с)

У вас там предыдущая строка не точкой с запятой (;) оканчивается?
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427809
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлег,
Нет, вот это не работает count(DISTINCT *)
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427811
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлег, тип поля spec_tnum - число?

Тогда пишите WHERE ltrim(str(spec_tnum)) like '93%'
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427816
IgorNG,

А что работает? Я чет уже запутался)
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427820
tanglir,

попробовал... то же самое... не, точки с запятой нет)))
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427826
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлегIgorNG,

А что работает? Я чет уже запутался)

SELECT DISTINCT * FROM table1 WHERE VAL(t1) > 10 INTO CURSOR c1 && Если поле символьное SELECT c1
<переменная> = RECCOUNT()
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427840
IgorNGIgorNGОлегОлегОлег,

SELECT DISTINCT * FROM table1 WHERE VAL(t1) > 10 INTO CURSOR c1 && Если поле символьное
SELECT c1
<переменная> = RECCOUNT()


Чет сразу не заметил. Вроде все получилось.. ТОлько проверить надо. Как посмотреть результат, присвоенный переменной?
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427841
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлег,

messagebox(переменная)
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427858
Неа, запрос
SELECT DISTINCT * FROM I:\BACKUP-SERVER\BASED\priem WHERE spec_tnum like '93%' INTO CURSOR c1
выдал все записи, которые соответствуют условию spec_tnum like '93%' ...

SELECT c1
lits = RECCOUNT()

после этого осталось то же количество записей
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427946
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Local lcFileName, laResult( 1 )

lcFileName = "I:\BACKUP-SERVER\BASED\priem.dbf"
laResult[ 1 ] =  0 

* Количество уникальных значений поля reg_nom среди записей, у которых выполняется условие WHERE
SELECT COUNT(disctinct reg_nom) FROM (m.lcFileName) INTO ARRAY laResult WHERE spec_tnum like '93%' 

MessageBox(laResult[ 1 ])
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37427948
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатка в слове Distinct Надеюсь, поправите в запросе
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37428276
ВладимирМ,

Спасибо огромное!
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37428287
Стыдно уже опять спрашивать... Нужно то же самое, только для объединения двух таблиц. Нужно посчитать количество уникальных записей по полю reg_nom для этого запроса:
SELECT * FROM priem, registr WHERE priem.reg_nom = registr.reg_nom AND priem.spec_tnum like '93%' AND registr.sex = 'Ж'
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37428522
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что не получается? Как пробовал?
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37428635
ВладимирМ,

по-разному.
Local File1, laResult(1), File2
file1 = "I:\BACKUP-SERVER\BASED\PRIEM"
file2 = "I:\BACKUP-SERVER\BASED\REGISTR"
laResult[1] = 0
SELECT COUNT(distinct reg_nom);
FROM (FILE1) INTO ARRAY laResult;
WHERE FILE1.REG_NOM = ;
(SELECT FILE2.REG_NOM FROM FILE2 WHERE FILE2.SEX = 'М');
AND FILE1.spec_tnum like '93%'

Или так:
SELECT COUNT(distinct reg_nom);
FROM (FILE1) INTO ARRAY laResult;
WHERE FILE1.REG_NOM = FILE2.REG_NOM;
FROM FILE2 AND FILE1.spec_tnum like '93%' AND FILE2.SEX = 'М'

Подскажите плиз, где ошибся
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37428724
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлегВопрос. Как присвоить переменной результат запроса:
select COUNT (*) FROM table
Ну, не совсем прямо в перменную, но в конечном итоге туда и попадает.
Код: plaintext
1.
2.
SELECT MAX(pole1) FROM MyTable INTO ARRAY z
? z[ 1 ]
AnyVariable=z[ 1 ]
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37428961
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОлегОлегОлегВладимирМ,

по-разному.
Local File1, laResult(1), File2
file1 = "I:\BACKUP-SERVER\BASED\PRIEM"
file2 = "I:\BACKUP-SERVER\BASED\REGISTR"
laResult[1] = 0
SELECT COUNT(distinct reg_nom);
FROM (FILE1) INTO ARRAY laResult;
WHERE FILE1.REG_NOM = ;
(SELECT FILE2.REG_NOM FROM FILE2 WHERE FILE2.SEX = 'М');
AND FILE1.spec_tnum like '93%'

Или так:
SELECT COUNT(distinct reg_nom);
FROM (FILE1) INTO ARRAY laResult;
WHERE FILE1.REG_NOM = FILE2.REG_NOM;
FROM FILE2 AND FILE1.spec_tnum like '93%' AND FILE2.SEX = 'М'

Подскажите плиз, где ошибся

В приведенных Вами примерах File1 и File2 - это не имя файла. Это имя переменных памяти, внутри которых записан полный путь доступа к файлу. Поэтому синтаксис вида "File1.Reg_nom" - бессмысленный. Нет такой таблицы File1. Как следствие, не может быть и поля у не существующей таблицы.

В подобных случаях используют внутренние алиасы команды Select-SQL. "Внутренние" в том смысле, что они действую только и исключительно внутри команды Select-SQL. Внутренний алиас указывается сразу после имени файла через пробел. Иногда допустимо указывать ключевое слово "AS" между именем файла и внутренним алиасом.

При этом, если уж указан внутренний алиас, необходимо в обязательном порядке указать его рядом с именами полей в команде Select-SQL. Вне зависимости от того, в каком месте команды Select-SQL используются имена полей

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Local File1, laResult( 1 ), File2
file1 = "I:\BACKUP-SERVER\BASED\PRIEM.dbf"
file2 = "I:\BACKUP-SERVER\BASED\REGISTR.dbf"
laResult[ 1 ] =  0 

SELECT COUNT(distinct f1.reg_nom) ;
FROM (FILE1) f1 ;
INNER JOIN (FILE2) f2 ON f1.REG_NOM = f2.REG_NOM;
INTO ARRAY laResult ;
WHERE f1.spec_tnum like '93%' AND f2.SEX = 'М'
...
Рейтинг: 0 / 0
Результат запроса в переменную
    #37429319
Да, все ок. Спасибо еще раз
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Результат запроса в переменную
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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