Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

2000 Размножить строки в запросе [MSSQL]


KAA ©   (2003-02-02 15:29:00) 

Есть таблица из двух полей, еаименование товара и кол-во.
Name Kol-vo
винт 3
шуруп 1
гайка 2

Задача, представить таблицу в виде, чтоб каждая еденица товара была отдельной строкой
Name Kol-vo
винт 1
винт 1
винт 1
шуруп 1
гайка 1
гайка 1


BlackTiger   (2003-02-03 09:38:00) [1]

Ерундой занимаются, блин. Нет, чтобы анализ задачи сделать - лепят первое, что в голову придет.


neXt   (2003-02-02 16:07:00) [2]

второй раз за месяц такой вопрос вижу, господи, зачем вам всё это!?

Нужно цикл делать, курсорный или просто цикл. Одним запросом этого сделать в T-SQL нельзя.
Пример может быть таким (в храмую процедурц его зашить и не мучаться), это только вариант, на оптимальность не претендую, на правильность не проверял:

create table #Result (Name, Kol)

declare @Name varchar(255), @Kol int, @I int

declare c cursor for
select Name, Kol
from MyTable

open c

fetch c into @Name, @Kol

while @@fetch_status
begin
select @I = @Kol
while @I > 0
begin
insert #Result (Name, Kol)
select @Name, 1

select @I = @I - 1
end -- while
fetch c into @Name, @Kol
end -- while

close c
deallocate c

select * from #Result



Наверх

Титульная страница Поиск, карта сайта Написать письмо