Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выборка по первым 2-м цифрам из поля таблицы [D5, dBase, FoxPro]


Chainik ©   (2002-05-30 16:26:00) 

Здравстуйте, мастера!Возвращаюськ своему вопросу(временно отсутствовал :().
-----------------------------------------------------------------
Chainik © (17.05.02 13:23)
Здравстуйте, уважаемые! Есть табличка(формат dbf), в которой есть поле(character, 18).Не подскажите ли, как выбрать из энтой таблицы записи по первым 2-м цифрам?
--------------------------------------------------------------------------------
Lusha © (17.05.02 13:31)
Использовать LIKE...
--------------------------------------------------------------------------------
Desdechado © (17.05.02 15:14)
так первых двух или по первым двум?

Немного уточню вопрос: записи начинаются с определенных двух цифры(например 00,01,02 и т.д).Мне нужно вывести количество записей,группируя их по этим двум цифрам(т.е 00 - 100 записей,
01 - 30 и т.д.).Как это можно сделать? Вы мне очень поможете, если посоветуете что-нить!


Lusha   (2002-05-30 18:00:00) [1]

>Johnmen © (30.05.02 17:56)
В IB многое чего нельзя... А спецификацию SQL92 я уже давно не смотрю... С тех пор как понял, что производители придерживаются ее в основном на словах... :)))


Chainik   (2002-05-30 17:56:00) [2]

Спасибо за советы, попытаюсь сделать!


Johnmen   (2002-05-30 17:56:00) [3]

>Lusha © : Вообще то мне это не интересно, т.к. заглянув в спецификацию SQL92, увидим стандартный синтаксис для GROUP BY.
В Оракуле посмотрю завтра (его синтаксис отличен), в IB - нельзя...

С наилучшими пожеланиями............ :)))))))0


Lusha   (2002-05-30 17:52:00) [4]

>Lusha © (30.05.02 17:47)
Ну, разумеется, функция взятия подстроки и в Oracle и в MS SQL будет выглядеть иначе... :)))


Lusha   (2002-05-30 17:47:00) [5]

>Johnmen © (30.05.02 17:37)
Oracle точно это обрабатывает, на счет MS SQL могу выяснить завтра, если тебе это интересно...

>Chainik © (30.05.02 17:37)
Смотрите в справке метод TTable.BatchMove


Chainik   (2002-05-30 17:37:00) [6]

Извините, но я не знаю как создавать в Delphi вр.таблицу и сохранять туды результат:((.
Будьте добры, поподробнее, пожайлуста насчет второго пункта.


Johnmen   (2002-05-30 17:37:00) [7]

>Lusha © (30.05.02 17:32) А ты уверен ? :)


Johnmen   (2002-05-30 17:34:00) [8]

>yozhik (30.05.02 17:26)

Ну что ты...Это, извиняюсь, ерунда-с....


Lusha   (2002-05-30 17:32:00) [9]

>yozhik (30.05.02 17:26)
Это будет работать на SQL серверах, но для BDE это пока неразрешимая задача... В день когда BDE такое сможет, я наверное напьюсь и буду кричать: "ADO это полное г-но"... :)


Lusha   (2002-05-30 17:28:00) [10]

А если очень хочется делать сие одним запросом, просто добавьте в таблицу одно поле, в котором храните первые два символа... Тогда задача очень сильно упростится...

SELECT TWOSYMBOLS, COUNT(*) FROM TABLE1
GROUP BY TWOSYMBOLS


yozhik   (2002-05-30 17:26:00) [11]

а если так
SELECT SUBSTRING(FIELD FROM 1 FOR 2) AS T FROM TABLE1
Group by SUBSTRING(FIELD FROM 1 FOR 2)
не проверял так как под руками ниче нету ...


Lusha   (2002-05-30 17:15:00) [12]

В одном запросе не получится...
1. Выбираем все имеющиеся комбинации первых двух цифр...
SELECT DISTINCT SUBSTRING(FIELD FROM 1 FOR 2) AS T FROM TABLE1
2. Сохраняем результат во временную табличку, например RESULT.
3. Считаем записи
SELECT D.T, COUNT(*) AS QUANTITY FROM RESULT D, TABLE1 E
WHERE D.T = SUBSTRING(E.FIELD FROM 1 FOR 2)
GROUP BY D.T


Johnmen   (2002-05-30 17:14:00) [13]

Такое сделать невозможно....


Chainik   (2002-05-30 17:09:00) [14]

А по-подробнее можно?


yozhik   (2002-05-30 17:06:00) [15]

попробуй вырезать первые 2 цивры, а потм групировать ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо