![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выборка по первым 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 цивры, а потм групировать ...