Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
Я начинаю изучать SQL и требуется помощь в легком вопросе у вас прожженных сиквельных волчар! помогите че вам стоит)

Имеется запрос, который выводит данные в след. виде

91202810500000000071 1 * DAVCRS
91202810700100000001 2 * DAVCRS
91202810200200000003 3 * DAVCRS
91202810800600000003 6 * DAVCRS

мне же надо привести к другому виду, представленному ниже(чтобы потом добавить записи в эту табличку)

0 0 NULL NULL NULL IMMGRS 349
0 1 NULL NULL NULL 91202810400000000003 349
0 2 NULL NULL NULL 1 349
0 3 NULL NULL NULL * 349
1 0 NULL NULL NULL IMMGRS 349
1 1 NULL NULL NULL 91202810900010000001 349
1 2 NULL NULL NULL 2 349
1 3 NULL NULL NULL * 349
2 0 NULL NULL NULL IMMSRS 349
2 1 NULL NULL NULL 91202810400000000003 349
2 2 NULL NULL NULL 1 349
2 3 NULL NULL NULL * 349

И сделать это надо максимально просто(никаких циклов использовать не надо). И не могу я понять что делать с массивом(2 колонка) и главное в 1 виде запроса у меня данные как колонки а во втором виде уже как строки(6 колонка). Целый день сижу думаю и все бесполезно))Жду советов, а не критики)
20 ноя 09, 13:20    [7956212]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Sergey S
Member

Откуда: Киев
Сообщений: 215
вообще не уловил связи того что есть с тем что должно получиться...
20 ноя 09, 13:25    [7956255]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
Sergey S,
1)
91202810500000000071 1 * DAVCRS
91202810700100000001 2 * DAVCRS
91202810200200000003 3 * DAVCRS
91202810800600000003 6 * DAVCRS
91202810200900000002 10 * DAVCRS
2)

0 0 NULL NULL NULL DAVCRS
0 1 NULL NULL NULL 91202810400000000003
0 2 NULL NULL NULL 1
0 3 NULL NULL NULL *
0 0 NULL NULL NULL DAVCRS
0 1 NULL NULL NULL 91202810700100000005
0 2 NULL NULL NULL 2
0 3 NULL NULL NULL *

Т.е мне запрос 1) нужно привести к запросу 2) 6 колонка запроса 2, это тоже самое что запрос 1, только там данные по строкам
20 ноя 09, 13:41    [7956389]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Mac3
Sergey S,
1)
91202810500000000071 1 * DAVCRS
91202810700100000001 2 * DAVCRS
91202810200200000003 3 * DAVCRS
91202810800600000003 6 * DAVCRS
91202810200900000002 10 * DAVCRS
2)

0 0 NULL NULL NULL DAVCRS
0 1 NULL NULL NULL 91202810400000000003
0 2 NULL NULL NULL 1
0 3 NULL NULL NULL *
0 0 NULL NULL NULL DAVCRS
0 1 NULL NULL NULL 91202810700100000005
0 2 NULL NULL NULL 2
0 3 NULL NULL NULL *

Т.е мне запрос 1) нужно привести к запросу 2) 6 колонка запроса 2, это тоже самое что запрос 1, только там данные по строкам
Где Вы здесь видите запросы?
Хотя, раз для Вас это "элементарщина", значит, видите...

Вообще-то, есть Рекомендации по оформлению сообщений в форуме...
20 ноя 09, 13:45    [7956440]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
iap, начинается!Это результат запроса
20 ноя 09, 13:46    [7956455]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mac3


Т.е мне запрос 1) нужно привести к запросу 2) 6 колонка запроса 2, это тоже самое что запрос 1, только там данные по строкам

И по каким "законам" во втором наборе появилось значение 91202810700100000005 ? Если его нет в исходных данных
20 ноя 09, 13:49    [7956474]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Supra93
Member

Откуда:
Сообщений: 8174
Mac3
iap, начинается!Это результат запроса

Текст запроса покажите
20 ноя 09, 13:49    [7956479]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
Supra93,

select SENSE_STRING,STRACCOUNT,OTD,Oper from CARD_PRODUCT_ADDFL_SENSE, #qwer where ID_FIELD=4 and SENSE_STRING like '%v%'
order by 1
20 ноя 09, 13:52    [7956513]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
Mac3,это селект который выводит данные вида 1). Мне же нужна эти данные вывести в резульатате 2)
20 ноя 09, 13:57    [7956551]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mac3
Mac3,это селект который выводит данные вида 1). Мне же нужна эти данные вывести в резульатате 2)

Вы в состоянии ознакомится с топиком Рекомендации по оформлению сообщений и оформит свой вопрос в соответствии с написанным там ?
Или вы будете как мантру повторять одну и туже фразу о своей задаче ?
20 ноя 09, 14:01    [7956586]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
create TABLE #qwer( STRACCOUNT varchar(25),OTD int, Oper varchar(3))
insert into #qwer values('91202810500000000071',1,'*')
insert into #qwer values('91202810700100000001',2,'*')
insert into #qwer values('91202810200200000003',3,'*')
insert into #qwer values('91202810800600000003',6,'*')

select SENSE_STRING,STRACCOUNT,OTD,Oper from CARD_PRODUCT_ADDFL_SENSE, #qwer where ID_FIELD=4 and SENSE_STRING like '%v%'
order by 1

в результате этого получается
1)
91202810500000000071 1 * DAVCRS
91202810700100000001 2 * DAVCRS
91202810200200000003 3 * DAVCRS
91202810800600000003 6 * DAVCRS

и есть таблица2, имеющая след вид:
2)
0 0 NULL NULL NULL IMMGRS
0 1 NULL NULL NULL 91202810400000000003
0 2 NULL NULL NULL 1
0 3 NULL NULL NULL *
1 0 NULL NULL NULL IMMGRS
1 1 NULL NULL NULL 91202810900010000001
1 2 NULL NULL NULL 2
1 3 NULL NULL NULL *

В итоге результаты селекта должны добавиться в табл 2. Для этого результат селекта надо привести к виду данных из табл 2.
20 ноя 09, 14:26    [7956783]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mac3
Для этого результат селекта надо привести к виду данных из табл 2.

Алгоритм преобразования можно самому выбрать ? Произвольный ?
20 ноя 09, 14:28    [7956802]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Mac3
create TABLE #qwer( STRACCOUNT varchar(25),OTD int, Oper varchar(3))
insert into #qwer values('91202810500000000071',1,'*')
insert into #qwer values('91202810700100000001',2,'*')
insert into #qwer values('91202810200200000003',3,'*')
insert into #qwer values('91202810800600000003',6,'*')

select SENSE_STRING,STRACCOUNT,OTD,Oper from CARD_PRODUCT_ADDFL_SENSE, #qwer where ID_FIELD=4 and SENSE_STRING like '%v%'
order by 1

в результате этого получается
1)
91202810500000000071 1 * DAVCRS
91202810700100000001 2 * DAVCRS
91202810200200000003 3 * DAVCRS
91202810800600000003 6 * DAVCRS

и есть таблица2, имеющая след вид:
2)
0 0 NULL NULL NULL IMMGRS
0 1 NULL NULL NULL 91202810400000000003
0 2 NULL NULL NULL 1
0 3 NULL NULL NULL *
1 0 NULL NULL NULL IMMGRS
1 1 NULL NULL NULL 91202810900010000001
1 2 NULL NULL NULL 2
1 3 NULL NULL NULL *

В итоге результаты селекта должны добавиться в табл 2. Для этого результат селекта надо привести к виду данных из табл 2.
Букву "v" в SENSE_STRING в упор не вижу.
В запросе - 2 таблицы, а CREATE TABLE только для одной...
Вас не затруднит пользоваться тегом [SRС]?
20 ноя 09, 14:34    [7956842]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
iap
Mac3
create TABLE #qwer( STRACCOUNT varchar(25),OTD int, Oper varchar(3))


.
Букву "v" в SENSE_STRING в упор не вижу.
В запросе - 2 таблицы, а CREATE TABLE только для одной...
Вас не затруднит пользоваться тегом [SRС]?


прошу прощения sense_ string в выводе данных я просто поставил в конец(1 столбцом он криво отоброжался)

Glory
Mac3
Для этого результат селекта надо привести к виду данных из табл 2.

Алгоритм преобразования можно самому выбрать ? Произвольный ?

да алгоритм любой и как можно более простой(без циклов итд)
20 ноя 09, 14:43    [7956918]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mac3


Glory
Mac3
Для этого результат селекта надо привести к виду данных из табл 2.

Алгоритм преобразования можно самому выбрать ? Произвольный ?

да алгоритм любой и как можно более простой(без циклов итд)

Да вы что ! Использовать простой алгоритм - это просто ниже моего достоинства. Обязательно надо, чтобы было побольше циклов, вычислений, процедур, функций и тд. Тогда это будет настоящая задача.
20 ноя 09, 14:47    [7956942]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
Glory, и зачем же все усложнять??
А идеей поделится по поводу простоты можете?? алгоритм
20 ноя 09, 15:04    [7957083]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mac3
Glory, и зачем же все усложнять??
А идеей поделится по поводу простоты можете?? алгоритм

Алгоритм разве не вы должны огласить ?
20 ноя 09, 15:07    [7957095]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
Glory
Mac3
Glory, и зачем же все усложнять??
А идеей поделится по поводу простоты можете?? алгоритм

Алгоритм разве не вы должны огласить ?


так я же на форум за помощью обратился, разве нет??
20 ноя 09, 15:10    [7957112]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mac3
Glory
Mac3
Glory, и зачем же все усложнять??
А идеей поделится по поводу простоты можете?? алгоритм

Алгоритм разве не вы должны огласить ?


так я же на форум за помощью обратился, разве нет??

Т.е. нужно за вас придумать правила, по которым одни данные превратятся в другие ?
20 ноя 09, 15:12    [7957125]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
Glory
Mac3
Glory
Mac3
Glory, и зачем же все усложнять??
А идеей поделится по поводу простоты можете?? алгоритм

Алгоритм разве не вы должны огласить ?


так я же на форум за помощью обратился, разве нет??

Т.е. нужно за вас придумать правила, по которым одни данные превратятся в другие ?


нет за меня придумывать не надо....можно подсказать как это реализовать, с помощью чего
20 ноя 09, 15:18    [7957162]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mac3


нет за меня придумывать не надо....можно подсказать как это реализовать, с помощью чего

Что "это" ?
Вы лично сами для себя хоть на бумажке можете нарисовать, как и куда каждое значение из первого набора попадает во второй набор ? Или вы считаете, что ваши примеры настолько ясны и понятны, что не требуют таких подробностей ? Что слова "мне надо", "я хочу" - это адекватное описание алгоритма ?
20 ноя 09, 15:22    [7957189]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Ozzy-Osbourne
Member

Откуда: Balashikha
Сообщений: 139
Судя по первым сообщениям ТС, надо транспонировать столбцы в строки, добавив три поля с null`ами.
Видимо, что-то типа этого:
if object_id('tempdb..#t')>0 drop table #t
create table #t( acc varchar(25),otd varchar(2), oper varchar(3), code varchar(12))
insert #t select '91202810500000000071', 1,'*','DAVCRS'
insert #t select '91202810700100000001', 2,'*','DAVCRS'
insert #t select '91202810200200000003', 3,'*','DAVCRS'
insert #t select '91202810800600000003', 6,'*','DAVCRS'
insert #t select '91202810200900000002',10,'*','DAVCRS'

select n=0,u.i,nf1=null,nf2=null,nf3=null
      ,f=case u.i when 0 then code when 1 then acc when 2 then otd when 3 then oper end
from #t
join (select i=0 union all select 1 union all select 2 union all select 3)u on 1=1
result:
ninf1nf2nf3f
00NULLNULLNULLDAVCRS
01NULLNULLNULL91202810500000000071
02NULLNULLNULL1
03NULLNULLNULL*
00NULLNULLNULLDAVCRS
01NULLNULLNULL91202810700100000001
02NULLNULLNULL2
03NULLNULLNULL*
00NULLNULLNULLDAVCRS
01NULLNULLNULL91202810200200000003
02NULLNULLNULL3
03NULLNULLNULL*
00NULLNULLNULLDAVCRS
01NULLNULLNULL91202810800600000003
02NULLNULLNULL6
03NULLNULLNULL*
00NULLNULLNULLDAVCRS
01NULLNULLNULL91202810200900000002
02NULLNULLNULL10
03NULLNULLNULL*

Если так, то в пресловутую "вторую таблицу", имеющую структуру как у приведенного резалтсета, надо просто вставить эту выборку:
insert into some_table_2 
select n=0,u.i,nf1=null,nf2=null,nf3=null
      ,f=case u.i when 0 then code when 1 then acc when 2 then otd when 3 then oper end
from #t
join (select i=0 union all select 1 union all select 2 union all select 3)u on 1=1
20 ноя 09, 15:35    [7957282]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Var79
Member

Откуда:
Сообщений: 890
Ozzy-Osbourne,

эх, только настроение начало подниматся :)
20 ноя 09, 15:43    [7957347]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Ozzy-Osbourne
Member

Откуда: Balashikha
Сообщений: 139
Var79,

мне почему-то стало немного жаль ТС... :-)
20 ноя 09, 15:59    [7957499]     Ответить | Цитировать Сообщить модератору
 Re: добавление данных в табличку(элементарщина)  [new]
Mac3
Member

Откуда:
Сообщений: 13
Ozzy-Osbourne,
спасибо огромное ! У меня главная проблема именно с транспонированием. Щас попробую осмыслить ваш вариант и испробовать.
20 ноя 09, 16:01    [7957521]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить