Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
ВнизSQL Найти похожие ветки
← →
SoundB (2008-07-09 14:59) [0]Мастера не судите строго, опять вопрос по SQL очень нужна помощь.
Копирую строки из одной таблицы в другую, нужны все поля второй таблицы кроме ID, а в поле ID первой таблицы нужно сожать максимальное количества строк таблицы 1.
Если делаю так:
INSERT INTO table1 (ID, NAME, DEPOSIT, DATE) SELECT (select max(id) from tblData) c1.name, c1.deposit, c1.date FROM tblData c1
То, скрипт работает только для одной записи, как можно это дело сделать, подскажите плиз.
← →
Тын-Дын © (2008-07-09 15:01) [1]Вопрос философский. А нужно ли копировать?
← →
SoundB (2008-07-09 15:03) [2]
> Вопрос философский. А нужно ли копировать?
Да, очень нужно.
Хотел сделать в дельфи путем While not eof - шеф приказал делать все на SQL. :(
← →
Ega23 © (2008-07-09 15:04) [3]СУБД не указана, поэтоу буду считать, что это MSSQL
Declare @x int;
Set NoCount ON;
Select @x=count(*) from tblData;
INSERT INTO table1 (ID, NAME, DEPOSIT, DATE)
Select ID=@X, name, deposit, date from tblData;
З.Ы. За раздачу именам полей в таблице резервированных слов (name, date) надо ставить к стенке.
← →
Ega23 © (2008-07-09 15:05) [4]
> Хотел сделать в дельфи путем While not eof - шеф приказал
> делать все на SQL. :(
Слушай шефа, он - мудр. Это на порядки быстрее будет.
← →
SoundB (2008-07-09 15:06) [5]Прошу прощения, БД Оракул.
← →
Правильный^Вася (2008-07-09 15:08) [6]
> в поле ID первой таблицы нужно сожать максимальное количества
> строк таблицы 1
явно что-то недоговорено, чувствуется, что должно быть "...по id текущей строки"
← →
Правильный^Вася (2008-07-09 15:08) [7]иначе какой смысл во всех строках одно и то же значение иметь?
← →
ketmar © (2008-07-09 15:09) [8]>[5] SoundB (2008-07-09 15:06:00)
а ешё Олега слушай, он фигни не посоветует.
---
All Your Base Are Belong to Us
← →
SoundB (2008-07-09 15:10) [9]
> явно что-то недоговорено, чувствуется, что должно быть ".
> ..по id текущей строки"
Так и есть, просто в свое время наши прогеры Сикенсы не использовали по этому сожаем данные в таблицу 1, с порядковым номером (количество записей + 1)
← →
Sergey13 © (2008-07-09 15:13) [10]> [9] SoundB (09.07.08 15:10)
А "Сикенсы" начальник тоже не велит доделать?
← →
Правильный^Вася (2008-07-09 15:16) [11]
> > явно что-то недоговорено, чувствуется, что должно быть
> "..по id текущей строки"
> Так и есть, просто в свое время наши прогеры Сикенсы не использовали
> по этому сожаем данныев таблицу 1, с порядковым номером (количество записей + 1)
совсем запутал
причем тут id+1 если тебе количество считать?
← →
Skyle © (2008-07-09 15:20) [12]А кто такие Сикенсы?
← →
Skyle © (2008-07-09 15:20) [13]
> Skyle © (09.07.08 15:20) [12]
Хм... кажется понял, видимо это sequence....
← →
SoundB (2008-07-09 15:55) [14]
> Хм... кажется понял, видимо это sequence....
Да так и есть :)
Люди добрые, подскажите что ни будь на подобие:
> Ega23 © (09.07.08 15:04) [3]
Только для оракул, пожалуйста :((
← →
Правильный^Вася (2008-07-09 16:01) [15]ты не обрисовал задачу
тебе нужно [6] или же max(id)+1
← →
Ega23 © (2008-07-09 16:02) [16]
> Только для оракул, пожалуйста :((
Это уж ты сам, с ораклом не знаком. Но идея, надеюсь понятная:
1. Заводим переменную
2. Считываем в неё count(*) (или Max(ID), не знаю, чё там у тебя)
3. insert into .. select from. Вместо ID - подставляешь значение переменной.
← →
Ega23 © (2008-07-09 16:03) [17]
> max(id)+1
Тогда уж IsNull(Max(ID), 1)+1
← →
Sergey13 © (2008-07-09 16:03) [18]> [0] SoundB (09.07.08 14:59)
Не знаю прокатит ли, неохота пробовать самому, но попробовать можно
INSERT INTO table1 (ID, NAME, DEPOSIT, DATE) SELECT (select max(id) from tblData)+ROWNUM c1.name, c1.deposit, c1.date FROM tblData c1
← →
SoundB (2008-07-09 16:25) [19]
> Не знаю прокатит ли, неохота пробовать самому, но попробовать
> можно
Млин, сработало :))) Класс, спасибо большое. Вы мне жизнь спасли :=)
← →
Anatoly Podgoretsky © (2008-07-09 16:40) [20]А что грозились убить?
← →
SoundB (2008-07-09 16:51) [21]
> А что грозились убить?
Ну нет, просто в отпуск не отпустили бы, потом жена меня достала бы, а потом я бы сам застрелился.)))
← →
Skyle © (2008-07-10 06:19) [22]
> SoundB (09.07.08 16:51) [21]
>
> > А что грозились убить?
>
>
> Ну нет, просто в отпуск не отпустили бы, потом жена меня
> достала бы, а потом я бы сам застрелился.)))
Застрелить шефа и в тюрьму. И отпуск, и жена не достанет.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.046 c