Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQL как проще? как правильно сформировать запрос? 
V
    Опции темы
samurai
Дата 31.3.2006, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 26.1.2006
Где: РФ, Омск

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



в базе есть табличка SPEC
с помощью определённого select формируется набор (4 поля), затем в этом наборе изменяем значения одного поля и делаем insert в туже spec

подскажите как сделать оптимально?
можно ли справиться одним запросом, без создания вспомогательной таблицы?
Спасибо
PM MAIL ICQ   Вверх
ТоляМБА
Дата 31.3.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

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



Код

INSERT INTO Table1 (field1, field2)
SELECT Table1.field1, Table1.field2
FROM Table1
where table1.field2 is null

И при чём тут раздел Дэлфи?
Цитата(samurai @ 31.3.2006, 10:42 Найти цитируемый пост)
подскажите как сделать оптимально?
зависит от where и join
Добавлено @ 11:25
не забывай про транзакции
PM   Вверх
samurai
Дата 31.3.2006, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 26.1.2006
Где: РФ, Омск

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



Цитата

И при чём тут раздел Дэлфи?

ну наверно потому что пишу эти команды в дельфи
клиент мой работает с InterBase
ТоляМБА где писать такие вопросы?

данный код не совсем подходит, т.к. он создаст одинаковые строчки, а мне нужно чтобы то поле, по которому мы делали выборку, записалось в табличку с другим значением.
куда в коде вставить <значение>?
например:
Код

INSERT INTO Table1 (field1, field2)    
SELECT Table1.field1, Table1.field2    
FROM Table1    
where table1.field2 is null

т.е. Field2 должен записаться с другим значением

спасибо!

Это сообщение отредактировал(а) samurai - 31.3.2006, 12:28
PM MAIL ICQ   Вверх
ТоляМБА
Дата 31.3.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

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



Field2 float, field3 float

Код

INSERT INTO Table1 (field1, field2)    
SELECT Table1.field1, Table1.field2/Table1.field3*3.14 это новое значение field2
FROM Table1    
where table1.field3<>0 and Table1.Field2<15 

Добавлено @ 12:54
InterBase
Цитата(samurai @ 31.3.2006, 12:24 Найти цитируемый пост)
ТоляМБА где писать такие вопросы?

PM   Вверх
samurai
Дата 31.3.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 26.1.2006
Где: РФ, Омск

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



to ТоляМБА всё получилось!
спасибо за решение и за терпение.

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


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

1. Базы данных (Paradox, Oracle и т.п.)

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


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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