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


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


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
17.04.2006, 10:12
    #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
17.04.2006, 11:27
    #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
17.04.2006, 11:41
    #33670586
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос?
Извините, HAVING не нужен, он остался от моих предыдущих экпериментов.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
17.04.2006, 17:10
    #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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как составить запрос? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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