Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

и снова SELECT   Найти похожие ветки 

 
Вованчик   (2004-01-15 11:03) [0]

Здравствуйте.

Допустим есть таблица:

NN: Numeric, //7 цифр
Naim: Character,
и т.д.


Поле Naim понятно, а в поле NN закодирован тип наименования в следующем виде:
1-3 цифры: № группы
4-7 цифры: порядковый номер

вопрос в следующем: можно ли SELECTом выбрать все номера групп (чтобы не повторялись) добавив к ним одно из наименований в поле NAIM (первое попавшееся)?

например:
1200001 Название1
1200002 Название2
1200003 Название3
2100001 Название4
2100002 Название5

результат выборки должен быть таким
120 Название1
210 Название4

ЗЫ: сейчас делаю подобную выборку с помощью SELECTа и обрабатывая его в цикле.


 
Johnmen   (2004-01-15 11:07) [1]

Совет глобальный - перепроектировать структуру таблицы, предварительно почитав про нормализацию.


 
Вованчик   (2004-01-15 11:12) [2]


> Johnmen © (15.01.04 11:07) [1]

с большим удовольствием, но когда программу с такой таблицей используют на предприятии порядка 10 лет перепроектировка таблицы становиться просто нереальной задачей :(


 
Danilka   (2004-01-15 11:16) [3]

в localSQL есть substring для этого


 
Вованчик   (2004-01-15 11:23) [4]


> Danilka © (15.01.04 11:16) [3]

спасибо


 
Johnmen   (2004-01-15 11:26) [5]

>Вованчик © (15.01.04 11:12)

Тогда
- distinct, Danilka © (15.01.04 11:16)...
- эмуляция запроса из запроса...


 
Вованчик   (2004-01-15 12:16) [6]

странно получается:

при выполнении запроса

SELECT DISTINCT (SUBSTRING(CAST(NN AS CHAR(7)) FROM 1 FOR 3)) AS Sub FROM table\PY8051

получаю меньше значений чем делаю перебором :(


 
Johnmen   (2004-01-15 12:25) [7]

Вот здесь :
CAST(NN AS CHAR(7))
что, по-твоему будет для групп 001, 077 и т.п. ? Или "таких" нет ?


 
Вованчик   (2004-01-15 12:58) [8]


> Johnmen © (15.01.04 12:25) [7]


> что, по-твоему будет для групп 001, 077 и т.п. ? Или "таких"
> нет ?

а таких нету - все обязательно начинаются с цифры


 
Вованчик   (2004-01-15 12:58) [9]

я имею ввиду не с нуля, а с 1 до 9


 
Johnmen   (2004-01-15 13:00) [10]

Тогда странно...


 
Anatoly Podgoretsky   (2004-01-15 13:02) [11]

Вот и посмотри какие пропущены, может тогда понятно будет.


 
Вованчик   (2004-01-15 13:11) [12]

посмотрел: перебором находит 325 записей, SELECT всего 166.
Закономерности пропускания не выявил :(
Спасибо за помощь буду рыться дальше :)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.028 c
1-16483
Alexei Sviridov
2004-01-27 14:21
2004.02.06
RxLoginDialog


1-16220
Brut
2004-01-26 15:49
2004.02.06
Фиксированный TreeView


4-16828
Cure
2003-11-26 20:36
2004.02.06
Изменения в реестре без перезагрузки системы


1-16457
Piero
2004-01-27 23:25
2004.02.06
Кодировка в Install Shield


9-16021
Vitas2
2003-06-17 14:03
2004.02.06
Источник света(OpenGL)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский