Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> update не идет, select в update возвращает 2 записи 
:(
    Опции темы
Zipper
Дата 4.5.2007, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 28.9.2006

Репутация: нет
Всего: нет



А еще одну проблему поможете решить?
Есть такой update

 
Код

update cards c
set fields = '00000007'||
            (
            select cast(s.tab_num as varchar(6))
            from "1SOTRONOS" s
            where s.fam = c.name1 and s.im = c.name2 and s.ot = c.name3 )
where c.pfirm=10 and substring(c.fields from 9 for 6) is null
 
 
Надо дополнить поле fields таблицы cards, если оно пустое, строчкой '00000007'+табельный_номер, который берется из поля tab_num (типа integer) таблицы "1SOTRONOS" при совпадении фамилии имени отчества. Но дело в том что встречаются полные тезки и соответственно выбираются несколько записей табельного номера, а он уникальный. как мне исклбчить такую ситуацию? Пусть выбирался бы только один из них. Второго можно поправить руками. 

PM MAIL   Вверх
Alex
Дата 4.5.2007, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



Ответил же...
Код

update cards c
set fields = '00000007'||
            (
            select FIRST 1 cast(s.tab_num as varchar(6))
            from "1SOTRONOS" s
            where s.fam = c.name1 and s.im = c.name2 and s.ot = c.name3 )
where c.pfirm=10 and substring(c.fields from 9 for 6) is null



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
jsa
Дата 4.5.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 1
Всего: 20



с технической точки зрения это ес-но сработает, но с точки зрения условия задачи даный селект вернет первый попавшийся табельный, имхо вопрос не об написании апдейта, а из области проектирования структур данных


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
Alex
Дата 5.5.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



jsa, ты прав при нормальном проектирование БД представить такие вещи просто невозможно, но что мне теперь рассказывать людям с нуля как строить большие системы, во первых нет времени и потом в пустую для 70% это все...


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.