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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
15-1215067842
Slider007
2008-07-03 10:50
2008.08.24
С днем рождения ! 3 июля 2008 четверг


2-1216282915
Артур Пирожков
2008-07-17 12:21
2008.08.24
Проблемы с Tidftp


15-1215076413
Tonich
2008-07-03 13:13
2008.08.24
Халтурка


15-1215533480
Украинец
2008-07-08 20:11
2008.08.24
А к какому типу относится язык програмирования у инопланентян?


15-1215011005
alex-drob
2008-07-02 19:03
2008.08.24
Apache не виден из интернета