Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Их одного 2 столбцов получить 4  [new]
HellKing
Member

Откуда:
Сообщений: 5
Нужно следующее.
Есть таблица с двумя столбцами Код и Image
Данные в ней
1 логотип1.гиф
2 логотип2.гиф
3 логотип3.гиф

Записей в ней не больше 300. А максимум через пару лет будет 1000!
Нужно получить Таблицу вида

Код Image Код1 Image1
1 логотип1.гиф 2 логотип2.гиф
3 логотип3.гиф
Как это реализовать и если можно то с примером.
21 окт 03, 14:52    [385837]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
>А максимум через пару лет будет 1000! <
ой!

готовишься заранее? :))

совет: почитай как дейта, кодда, нормализации, нормальные формы, там все написано, как такие задачи решать
21 окт 03, 15:00    [385859]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
HellKing
Member

Откуда:
Сообщений: 5
А ссылочку можна????
21 окт 03, 15:01    [385863]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
google.com
21 окт 03, 15:02    [385866]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
???
select a.Код, a.Image, b.Код as Код1, b.Image as Image1

from таблица a join
таблица b on a.Код=b.Код-1
where a.Код%2=0
and b.Код%2=1
Правда гарантировано если Код монотонно возрастает и нет пропусков...
21 окт 03, 15:05    [385876]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
HellKing
Member

Откуда:
Сообщений: 5
Помощь конечно существенная!!!
Но я просил пример готовый если можно! У меня есть такой но он для Интербейза! :
drop procedure proc1;

set term ||;
create procedure proc1
returns ( r_id1 integer,
r_text1 char(10),
r_id2 integer,
r_text2 char(10),
r_id3 integer,
r_text3 char(10),
r_id4 integer,
r_text4 char(10))
as
declare variable nCnt integer;
declare variable l_id integer;
declare variable l_text char(10);
begin
nCnt = 0;
for select "table1"."id", "table1"."text" from "table1" into :l_id, :l_text do
begin
if ( mod(nCnt, 4) = 0 ) then
begin
r_id1 = :l_id;
r_text1 = :l_text;
end
if ( mod(nCnt, 4) = 1 ) then
begin
r_id2 = :l_id;
r_text2 = :l_text;
end
if ( mod(nCnt, 4) = 2 ) then
begin
r_id3 = :l_id;
r_text3 = :l_text;
end


if ( mod(nCnt, 4) = 3 ) then
begin
r_id4 = :l_id;
r_text4 = :l_text;
suspend;
r_id1 = 0;
r_id2 = 0;
r_id3 = 0;
r_id4 = 0;
r_text1 = '';
r_text2 = '';
r_text3 = '';
r_text4 = '';
end

nCnt = nCnt + 1;
end
suspend;

end||

set term ;||
21 окт 03, 15:06    [385881]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
понимаешь ли, в чем дело: то, что ты хочешь сделать - противоречит общепризнанным законам проектирования бд, вот я и хотел вместо написания скрипта предложить теоретиков почитать

чисто из лучших побуждений, ибо это съэкономит впоследствии массу времени
21 окт 03, 15:09    [385893]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
HellKing
Member

Откуда:
Сообщений: 5
Мне это надо для создания кладбища логотипов!!!!
21 окт 03, 15:11    [385896]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
>Мне это надо для создания кладбища логотипов!!!!<

какая разница, для чего...

ты подумай, как ты туда записи будешь добавлять ? - бог сним, с поиском, это несложно ...
то же самое апдейт....

что даст тот факт, что вместо 1000 записей будет 500, если ты везде будешь писать select * - только тормоза, лишние блобы по сетке гонять...

а если понимающий начальник такую таблицу увидит? - я бы на его месте очень сильно задумался
21 окт 03, 15:18    [385915]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
HellKing
Member

Откуда:
Сообщений: 5
Ладно долго объяснять!!! В том-то и дело что начальник такую задачу поставил! ГЫ!
21 окт 03, 15:20    [385921]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
Гиблое дело ты затеял. Оставь так, как есть. Если не понимаешь почему - поверь лучше на слово.
21 окт 03, 15:22    [385925]     Ответить | Цитировать Сообщить модератору
 Re: Их одного 2 столбцов получить 4  [new]
Glory
Member

Откуда:
Сообщений: 104760
select a.au_id as au_id1, a.au_lname as au_lname1,

c.au_id as au_id2, c.au_lname as au_lname2
from authors a
left outer join authors c on c.au_id = (select top 1 d.au_id from authors d where d.au_id > a.au_id order by d.au_id)
where (select count(*) from authors b where b.au_id <= a.au_id) % 2 = 1
order by a.au_id
21 окт 03, 16:48    [386162]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить