Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

и снова 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
11-16202
Евгений
2003-05-19 20:02
2004.02.06
CopyFrom


3-16088
levova
2004-01-10 19:34
2004.02.06
FireBird


1-16331
oleg_SYS
2004-01-24 21:27
2004.02.06
Где находятся в реестре пункты контекстных меню?


6-16544
V.exeR
2003-12-02 06:57
2004.02.06
И еще... Как узнать размер и время создания файла


14-16669
syte_ser78
2004-01-17 15:03
2004.02.06
Siemens A50