powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как составить запрос?
7 сообщений из 7, страница 1 из 1
Как составить запрос?
    #33670039
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток всем!
Помогите составить запрос. Есть таблица с полем Pole1, символьное, 6 знаков. В таблицe постоянно добавляются записи, и в это поле заноситься значение вида 000000, 000001, 000002 и т.д. Могут быть пропуски. Я хочу узнать, накопилась ли полная тысяча однотипных файлов (например все 001ХХХ), и если есть то каких.
...
Рейтинг: 0 / 0
Как составить запрос?
    #33670046
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
select * from table1
where like("001???", pole1)
...
Рейтинг: 0 / 0
Как составить запрос?
    #33670117
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from table1
where like("001???", pole1)


Не, не то. Надо знать сколько значений в каждой тысяче имеется.
VFP6SP5


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как составить запрос?
    #33670274
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы сделал так:

Код: 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.
USE IN SELECT('test')
USE IN SELECT ('result')

CREATE CURSOR test (field1 c( 6 ))
INSERT INTO test VALUES("000000")
INSERT INTO test VALUES("000055")
INSERT INTO test VALUES("001001")
INSERT INTO test VALUES("002001")
INSERT INTO test VALUES("002150")
INSERT INTO test VALUES("022001")
INSERT INTO test VALUES("999000")
INSERT INTO test VALUES("999800")
INSERT INTO test VALUES("999810")

CREATE CURSOR result (thousands i, num_occur i)

LOCAL lnMax, lnCount

SELECT test
CALCULATE MAX(VAL(LEFT(test.field1,  3 ))) TO lnMax
FOR lni =  0  TO lnMax
	CALCULATE COUNT() FOR LIKE(PADL(ALLTRIM(STR(lni)),  3 ,"0")+ "???",test.field1) TO lnCount
	IF lnCount >  0 
		INSERT INTO result VALUES(lni, lnCount)
	ENDIF
ENDFOR
SELECT result
BROWSE
...
Рейтинг: 0 / 0
Как составить запрос?
    #33670514
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ожидал помощи в составлении такого запросе:
Код: plaintext
1.
2.
3.
SELECT LEFT(test.field1, 3 ), count(test.field1);
 FROM test;
 GROUP BY  1 ;
 HAVING left(test.field1, 3 ) = ""
Вопрос снят.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как составить запрос?
    #33670586
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, HAVING не нужен, он остался от моих предыдущих экпериментов.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как составить запрос?
    #33671776
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
USE IN SELECT('test')

CREATE CURSOR test (field1 c( 6 ))
INSERT INTO test VALUES("000000")
INSERT INTO test VALUES("000055")
INSERT INTO test VALUES("001001")
INSERT INTO test VALUES("002001")
INSERT INTO test VALUES("002150")
INSERT INTO test VALUES("022001")
INSERT INTO test VALUES("999000")
INSERT INTO test VALUES("999800")
INSERT INTO test VALUES("999810")


SELECT LEFT(field1,  3 ) as Thousands, count(*) as num_count ;
FROM test ;
GROUP BY Thousands ;
into cursor Result

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


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