[mssql] insert do tabeli na podstawie danych z innej tabeli
kinde - 27-12-2005 10:18
[mssql] insert do tabeli na podstawie danych z innej tabeli
witam mam taki problem: istnieje tabela1 z kilkoma kolumnami A1, B1, C1, D1 w kolumnach A1 i C1 sa dane ktore chcialbym wykorzystac robiac inserty do tabeli2 jak napisac takiego selecta by realizowal pseudokod:
wpisz do tabeli2 wiersze A1, B2, C1, D2 - wpisz ich tyle ile istnieje niepustych wierszy C1 probowalem w ten sposob ale mi nie wychodzi:
begin tran Declare @zA1 int Declare @zC1 varchar (255)
select A1 from tabela1 where @zA1 = A1 and C1 <> ''
select C1 from cdn.kntkarty where @zC1 = C1 and C1 <> ''
INSERT INTO tabela2 ( A2, B2, C2, D2, ) VALUES (@zA1, 'cos', @zC1, 'cos')
ja - 27-12-2005 10:18
wydaje mi sie ze to moze byc tak... pewnie zaraz ktos mnie poprawi ale nas poczatek bedzie chyba oki :)
insert into tab2(A2,B2,C2,D2) select (A1,'cos',C1,'cos') from tab1;
> witam > mam taki problem: > istnieje tabela1 z kilkoma kolumnami A1, B1, C1, D1 > w kolumnach A1 i C1 sa dane ktore chcialbym wykorzystac robiac inserty do > tabeli2 > jak napisac takiego selecta by realizowal pseudokod: > > wpisz do tabeli2 wiersze A1, B2, C1, D2 - wpisz ich tyle ile istnieje > niepustych wierszy C1 > probowalem w ten sposob ale mi nie wychodzi: > > begin tran > Declare @zA1 int > Declare @zC1 varchar (255) > > select A1 from tabela1 > where @zA1 = A1 > and C1 <> '' > > select C1 from cdn.kntkarty > where @zC1 = C1 > and C1 <> '' > > INSERT INTO tabela2 ( > A2, > B2, > C2, > D2, > ) > VALUES > (@zA1, > 'cos', > @zC1, > 'cos') > >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
karol_karbownik@op.pl - 27-12-2005 10:18
zapomniałem o warunku :) dodaj jeszcze where C1 is not null
> wydaje mi sie ze to moze byc tak... > pewnie zaraz ktos mnie poprawi ale nas poczatek bedzie chyba oki :) > > > insert into tab2(A2,B2,C2,D2) select (A1,'cos',C1,'cos') from tab1; > > > witam > > mam taki problem: > > istnieje tabela1 z kilkoma kolumnami A1, B1, C1, D1 > > w kolumnach A1 i C1 sa dane ktore chcialbym wykorzystac robiac inserty do > > tabeli2 > > jak napisac takiego selecta by realizowal pseudokod: > > > > wpisz do tabeli2 wiersze A1, B2, C1, D2 - wpisz ich tyle ile istnieje > > niepustych wierszy C1 > > probowalem w ten sposob ale mi nie wychodzi: > > > > begin tran > > Declare @zA1 int > > Declare @zC1 varchar (255) > > > > select A1 from tabela1 > > where @zA1 = A1 > > and C1 <> '' > > > > select C1 from cdn.kntkarty > > where @zC1 = C1 > > and C1 <> '' > > > > INSERT INTO tabela2 ( > > A2, > > B2, > > C2, > > D2, > > ) > > VALUES > > (@zA1, > > 'cos', > > @zC1, > > 'cos') > > > > > > > -- > Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
kinde - 27-12-2005 10:18
> zapomniałem o warunku :) > dodaj jeszcze where C1 is not null >> wydaje mi sie ze to moze byc tak... >> pewnie zaraz ktos mnie poprawi ale nas poczatek bedzie chyba oki :) >> insert into tab2(A2,B2,C2,D2) select (A1,'cos',C1,'cos') from tab1;
niestety Line 1: Incorrect syntax near ','. nie podoba mu sie "przecinek" w wyrazeniu: select (A1,'cos'......
karol_karbownik@op.pl - 27-12-2005 10:18
to napewno nie przecinek
napisz mi jakiego typu sa poszczegolne kolumny w obu tabelach
tzn int,varchar itp....?
> > zapomniałem o warunku :) > > dodaj jeszcze where C1 is not null > >> wydaje mi sie ze to moze byc tak... > >> pewnie zaraz ktos mnie poprawi ale nas poczatek bedzie chyba oki :) > >> insert into tab2(A2,B2,C2,D2) select (A1,'cos',C1,'cos') from tab1; > > niestety > Line 1: Incorrect syntax near ','. > nie podoba mu sie "przecinek" w wyrazeniu: select (A1,'cos'...... > >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
kinde - 27-12-2005 10:18
> to napewno nie przecinek > napisz mi jakiego typu sa poszczegolne kolumny w obu tabelach > tzn int,varchar itp....?
dlatego ten przecinek napisalem w cudzyslowie typ danych tez chyba nie ma znaczenia - wyglada na to ze skladnia jest nie do konca poprawna moze ktos wie jak robic "masowe" inserty? czyli mam w jednej tabeli kolumne w ktorej jest tysiac jakichtam rekordow i mam teraz do drugiej tabeli wrzucic te dane dolaczajac przy okazji cos do innych kolumn? pozdrawiam
Slawomir Cichy - 29-12-2005 14:33
kinde wrote: > witam > mam taki problem: > istnieje tabela1 z kilkoma kolumnami A1, B1, C1, D1 > w kolumnach A1 i C1 sa dane ktore chcialbym wykorzystac robiac inserty do > tabeli2 > jak napisac takiego selecta by realizowal pseudokod: > > wpisz do tabeli2 wiersze A1, B2, C1, D2 - wpisz ich tyle ile istnieje > niepustych wierszy C1 > probowalem w ten sposob ale mi nie wychodzi: >
INSERT INTO tabeli2 (A2, B2, C2, D2) select A1, 'cos', C1, 'cos' from tabela1 where C1 is not null and C1 <> ''
Sebastian - 29-12-2005 14:57
Użytkownik "kinde" <kinde@poczta.onet.pl> napisał w wiadomości news:dom023$i14$1@nemesis.news.tpi.pl... >> zapomniałem o warunku :) >> dodaj jeszcze where C1 is not null >>> wydaje mi sie ze to moze byc tak... >>> pewnie zaraz ktos mnie poprawi ale nas poczatek bedzie chyba oki :) >>> insert into tab2(A2,B2,C2,D2) select (A1,'cos',C1,'cos') from tab1; > > niestety > Line 1: Incorrect syntax near ','. > nie podoba mu sie "przecinek" w wyrazeniu: select (A1,'cos'......
Powod jest smieszny. Jest to zbedny nawias. Pwinno byc: insert into tab2(A2,B2,C2,D2) select A1,'cos',C1,'cos' from tab1
Sebastian
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
=?iso-8859-2?Q?=5BMySQL=5D_Wy=B6wietlenie_wszystkich_rekordow _zawierajacy?==?iso-8859-2?Q?ch_duplikat_a__moze_inna_struktura_bazy_danych ?=
Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8
[laik]Jak =?ISO-8859-2?Q?stworzy=E6/zaczac_tworzyc__ma=B3=B1?==?ISO-8859-2?Q?__baz=EA_danych_na_potrzeby_www=3F?=
[mysql] przenoszenie danych =?ISO-8859-2?Q?mi=EAdzy_tabelami_?==?ISO-8859-2?Q?w_r=F3=BFnych_bazach?=
Zrywanie =?ISO-8859-2?Q?po=B3aczen_z_baza_danych_-_pos?==?ISO-8859-2?Q?tgresql_=3C-=3E_odbc?=
Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
[MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?=
MSSQL Express czy Oracle Express
zanotowane.pldoc.pisz.plpdf.pisz.plnocnerozmowy.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|