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

Откуда:
Сообщений: 17
Здравствуйте, есть задачка.

Имеются данные (все данные лежат в одной табличке)
C_Record_TypeC_SubscrC_FamC_NameC_OtchC_HomeownerC_Fam_CompositionC_Service_CodeС_Unit N_Tariff N_Norm
О500805ВладимировВалерийИванович10NULLNULLNULLNULL
О500805ВладимироваНадеждаЛеонидовна00NULLNULLNULLNULL
О500805ВладимироваЕвгенияВалерьевна00NULLNULLNULLNULL
О500805ВладимироваЛюдмилаВалерьевна00NULLNULLNULLNULL
У500805NULLNULLNULLNULLNULL3000кв.м.5.00NULL
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL32000куб.м.15.23NULL
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252


Тип записи О - это люди которые завязаны на ЛС 500805. Тип У - это услуги которые завязаны на ЛС.
Количество записей с типом О и с типом У меняется (например одна запись с типом О на одном ЛС и 10 услуг на этом же ЛС)
Необходимо продублировать для каждой записи с типом О все записи типа У. Т.е. результат должен принять следующий вид:

C_Record_TypeC_SubscrC_FamC_NameC_OtchC_HomeownerC_Fam_CompositionC_Service_CodeС_Unit N_Tariff N_Norm
О500805ВладимировВалерийИванович10NULLNULLNULLNULL
У500805NULLNULLNULLNULLNULL3000кв.м.5.00NULL
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL32000куб.м.15.23NULL
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252
О500805ВладимироваНадеждаЛеонидовна00NULLNULLNULLNULL
У500805NULLNULLNULLNULLNULL3000кв.м.5.00NULL
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL32000куб.м.15.23NULL
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252
О500805ВладимироваЕвгенияВалерьевна00NULLNULLNULLNULL
У500805NULLNULLNULLNULLNULL3000кв.м.5.00NULL
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL32000куб.м.15.23NULL
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252
О500805ВладимироваЛюдмилаВалерьевна00NULLNULLNULLNULL
У500805NULLNULLNULLNULLNULL3000кв.м.5.00NULL
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL31100куб.м.13.397.363
У500805NULLNULLNULLNULLNULL32000куб.м.15.23NULL
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL33100Квт.ч.2.8049.00
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252
У500805NULLNULLNULLNULLNULL36000Гкал1609.270.0252


Подскажите, пожалуйста, какого вида запрос должен быть?
5 июн 16, 23:33    [19260659]     Ответить | Цитировать Сообщить модератору
 Re: Задачка:Продублировать строки одного типа для строк другого типа.  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Уместно ли предлагать изменить архитектуру?
Вам по идее нужны 3 таблицы - для записей типа О, для записей типа У и для их связи.
А то, что Вы просите, будет результатом запроса, который Вы можете оформить как представление.
6 июн 16, 08:14    [19260908]     Ответить | Цитировать Сообщить модератору
 Re: Задачка:Продублировать строки одного типа для строк другого типа.  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2407
stajooor,
навскидку
select "все О, У"
union all
select "только У"
6 июн 16, 10:13    [19261354]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить