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

Откуда:
Сообщений: 101
Здравствуйте, нужно объединить несколько полей из одной таблицы в одно поле другой таблицы(при этом мне нужно, чтобы внешние ключи отображали информацию, а не код) Пробовала так
INSERT INTO Basket
 (info)

SELECT     [Case].Manufacturer+" "+ [Case].Model+" "+Case_Type.Type+" "+FormFactor.FormFactor+" "+ [Case].Power_module
FROM         [Case] INNER JOIN
                      Case_Type ON [Case].Type = Case_Type.CsTp_ID INNER JOIN
                      FormFactor ON [Case].FormFactor = FormFactor.Frm_ID
Ошибок в коде нет, но сохраняет оно не так как нужно. Подскажите как осуществить, чтобы работало...
31 май 11, 13:27    [10738318]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
ё
Guest
Proggirl,

вы уверены что это МС СКЛ ?
"пацаватое" форматирование запроса на Акцессовское очень похоже...

если всё-таки МС СКЛ, то так должно быть
+' '+

автор
сохраняет оно не так как нужно

а как нужно ?

автор
при этом мне нужно, чтобы внешние ключи отображали информацию, а не код)

и эта фраза конечно - бред из бреда
31 май 11, 13:36    [10738401]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
ё

если всё-таки МС СКЛ, то так должно быть
+' '+

исправила...

CREATE PROCEDURE SP_Insert_Case
as
INSERT INTO Basket
 (info)

SELECT     [Case].Manufacturer+'  '+ [Case].Model+' '+Case_Type.Type+' '+FormFactor.FormFactor+' '+ [Case].Power_module
FROM         [Case] INNER JOIN
                      Case_Type ON [Case].Type = Case_Type.CsTp_ID INNER JOIN
                      FormFactor ON [Case].FormFactor = FormFactor.Frm_ID
insert into Basket (price) select price from [case]
insert into Basket (ID_old) select Cs_ID from [case]
insert into Basket ([table]) select '[Case]'
GO
Я хочу чтобы по нажатию на кнопку соответствующая запись добавлялась в таблицу Basket
31 май 11, 15:23    [10739424]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

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


К сообщению приложен файл. Размер - 4Kb
31 май 11, 15:26    [10739458]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Proggirl
Я хочу чтобы по нажатию на кнопку соответствующая запись добавлялась в таблицу Basket
У сервера только одна кнопка - RESET!!
31 май 11, 15:27    [10739463]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
а добавляется в таблицу Basket оно вот так:

К сообщению приложен файл. Размер - 6Kb
31 май 11, 15:27    [10739464]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
ё
если всё-таки МС СКЛ, то так должно быть
+' '+

исправила...

CREATE PROCEDURE SP_Insert_Case
as
INSERT INTO Basket
 (info)

SELECT     [Case].Manufacturer+'  '+ [Case].Model+' '+Case_Type.Type+' '+FormFactor.FormFactor+' '+ [Case].Power_module
FROM         [Case] INNER JOIN
                      Case_Type ON [Case].Type = Case_Type.CsTp_ID INNER JOIN
                      FormFactor ON [Case].FormFactor = FormFactor.Frm_ID
insert into Basket (price) select price from [case]
insert into Basket (ID_old) select Cs_ID from [case]
insert into Basket ([table]) select '[Case]'
GO
Я хочу чтобы по нажатию на кнопку соответствующая запись добавлялась в таблицу Basket

Это вы 4мя insert-ми делаете "соответствующая запись добавлялась в таблицу Basket" ?
31 май 11, 15:28    [10739477]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Хотя должна быть одна запись соответствующая кнопке, на которую я нажимала...
31 май 11, 15:28    [10739482]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
а добавляется в таблицу Basket оно вот так:

А как еще должны работать 4 команды insert ? Добавлять одну запись ?
31 май 11, 15:28    [10739488]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Proggirl
исправила...

Не похоже...
Начать видимо нужно с изучения BOL по DML
31 май 11, 15:29    [10739496]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
А как правильно будет вставить через один Insert? через values у меня не получается.. ну может я просто делаю что-то не так( это даже не может, это скорей всего)...
INSERT INTO Basket
 (info, price, ID_old, [table]) 
values(
SELECT     [Case].Manufacturer+'  '+ [Case].Model+' '+Case_Type.Type+' '+FormFactor.FormFactor+' '+ [Case].Power_module
FROM         [Case] INNER JOIN
                      Case_Type ON [Case].Type = Case_Type.CsTp_ID INNER JOIN
                      FormFactor ON [Case].FormFactor = FormFactor.Frm_ID, price , Cs_ID, '[Case]') from [Case]
GO
31 май 11, 16:18    [10740031]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
А как правильно будет вставить через один Insert? через values у меня не получается.. ну может я просто делаю что-то не так( это даже не может, это скорей всего)...

Потому что не надо мешать два разных синтакиса - insert ... values и insert ... select
31 май 11, 16:20    [10740064]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Proggirl,

INSERT INTO Basket (info, price, ID_old, [table]) 
SELECT     
	c.Manufacturer+'  '+ c.Model+' '+ct.Type+' '+ff.FormFactor+' '+ c.Power_module,
	c.price, 
	c.Cs_ID, 
	'[Case]'
FROM
	[Case] c
	INNER JOIN Case_Type ct ON c.Type = ct.CsTp_ID 
	INNER JOIN FormFactor ff ON c.FormFactor = ff.Frm_ID
приучите себя к альясам
31 май 11, 16:24    [10740110]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Proggirl, и че? Чтение мануала не помогает?
INSERT  INTO Basket
        ( info,
          price,
          ID_old,
          [table]
        )
        SELECT  c.Manufacturer + '  ' + c.Model + ' ' + ct.Type + ' ' + ff.ff + ' ' + c.Power_module,
                c.price,
                c.Cs_ID,
                'c'
        FROM    [Case] c
        INNER JOIN Case_Type ct
        ON      c.Type = ct.CsTp_ID
        INNER JOIN FormFactor ff
        ON      c.ff = ff.Frm_ID
31 май 11, 16:24    [10740118]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
А как мне тогда вот это осуществить?
SELECT     [Case].Manufacturer+'  '+ [Case].Model+' '+Case_Type.Type+' '+FormFactor.FormFactor+' '+ [Case].Power_module
FROM         [Case] INNER JOIN
                      Case_Type ON [Case].Type = Case_Type.CsTp_ID INNER JOIN
                      FormFactor ON [Case].FormFactor = FormFactor.Frm_ID
Чтобы без Select...Извините, что надоедаю с вопросами....
31 май 11, 16:25    [10740125]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Proggirl, что именно вот это?
31 май 11, 16:27    [10740146]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Вы уже ответили... просто я прочитать не успела...
31 май 11, 16:28    [10740168]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Glory
Proggirl
А как правильно будет вставить через один Insert? через values у меня не получается.. ну может я просто делаю что-то не так( это даже не может, это скорей всего)...

Потому что не надо мешать два разных синтакиса - insert ... values и insert ... select
В SQL2008 можно, но SELECTы-то всё равно надо заключать в круглые скобки.
А мы о версии и не знаем ничего.
31 май 11, 16:28    [10740171]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
А как мне тогда вот это осуществить?
SELECT     [Case].Manufacturer+'  '+ [Case].Model+' '+Case_Type.Type+' '+FormFactor.FormFactor+' '+ [Case].Power_module
FROM         [Case] INNER JOIN
                      Case_Type ON [Case].Type = Case_Type.CsTp_ID INNER JOIN
                      FormFactor ON [Case].FormFactor = FormFactor.Frm_ID
Чтобы без Select...Извините, что надоедаю с вопросами....

Установить хелп
Прочитать про команду INSERT http://msdn.microsoft.com/en-us/library/ms174335.aspx
Прочитать про примеры использоватния INSERT http://msdn.microsoft.com/en-us/library/dd776381.aspx
Написать свой код
31 май 11, 16:30    [10740190]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Вот такая вот ерунда получается...
31 май 11, 16:31    [10740205]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

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


К сообщению приложен файл. Размер - 2Kb
31 май 11, 16:32    [10740208]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Proggirl
Вот такая вот ерунда получается...

Угу, терь вы уже, наверное, готовы к чтению документации. Помогает.
31 май 11, 16:32    [10740217]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
Вот такая вот ерунда получается...

И что здесь неправильного ?
Добавилось больше/меньше записей, чем вернул ваш SELECT ?
31 май 11, 16:34    [10740231]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
последние три строчки результат нажатия кнопки в форме. т.е. все записи которые есть сейчас в таблице Case. А мне нужно чтобы только одна запись добавлялась....
31 май 11, 16:34    [10740241]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Помимо выше сказанного. в инфо пусто. т.е. моя конкатенация не работает...
31 май 11, 16:35    [10740259]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить