wiersze w kolumny - sql
pamperek@gmail.com - 27-06-2007 00:04
wiersze w kolumny - sql
cześć!
mam dane w formacie:
id_fk strona konto 1 WN 5100 1 MA 7100
a chcę ja zamienić na id_fk konto_wn konto_ma 1 5100 7100
macie pomysł na sprytnego sqlka, który sobie z tym poradzi?
danych jest oczywiście więcej, ale jak pomożecie z tym to z resztą sobie poradzę. pomożecie? :)
dzięki!
2m
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 27-06-2007 00:04
pamperek@gmail.com wrote: > cześć! > > mam dane w formacie: > > id_fk strona konto > 1 WN 5100 > 1 MA 7100 > > a chcę ja zamienić na > id_fk konto_wn konto_ma > 1 5100 7100 > > macie pomysł na sprytnego sqlka, który sobie z tym poradzi? > > danych jest oczywiście więcej, ale jak pomożecie z tym to z resztą > sobie poradzę. > pomożecie? :)
Join tabeli samej z sobą, tylko z innymi warunkami. :)
-- P.M.
=?ISO-8859-2?Q?Adam_P=B3aszczyca?= - 27-06-2007 00:04
On Tue, 26 Jun 2007 13:35:03 -0700, pamperek@gmail.com wrote:
> >id_fk strona konto >1 WN 5100 >1 MA 7100 > >a chcę ja zamienić na >id_fk konto_wn konto_ma >1 5100 7100 > >macie pomysł na sprytnego sqlka, który sobie z tym poradzi?
Mamy.
>danych jest oczywiście więcej, ale jak pomożecie z tym to z resztą >sobie poradzę. >pomożecie? :)
A ile zapłacisz? A zresztą...
Select A.ID_FK, A.STRONA AS konto_wn, b.strona AS konto_ma from (select id, konto from tabela where strona ='MA') AS A JOIN (select id, konto from tabela where strona ='WN') AS B ON A.ID_FK=B.ID_FK -- ___________ (R) /_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122 688 ___/ /_ ___ ul. Na Szaniec 23/70 31-560 Kraków (012 378 31 98) _______/ /_ http://trzypion.oldfield.org.pl/wieliczka/foto.html ___________/ mail: _555@irc.pl GG: 3524356
pamperek@gmail.com - 27-06-2007 00:09
On 26 Cze, 23:26, Adam Płaszczyca <trzyp...@oldfield.spamnie.org.pl> wrote: > On Tue, 26 Jun 2007 13:35:03 -0700, pampe...@gmail.com wrote: > > >id_fk strona konto > >1 WN 5100 > >1 MA 7100 > > >a chcę ja zamienić na > >id_fk konto_wn konto_ma > >1 5100 7100 > > >macie pomysł na sprytnego sqlka, który sobie z tym poradzi? > > Mamy. > > >danych jest oczywiście więcej, ale jak pomożecie z tym to z resztą > >sobie poradzę. > >pomożecie? :) > > A ile zapłacisz? > A zresztą... > > Select A.ID_FK, A.STRONA AS konto_wn, b.strona AS konto_ma > from > (select id, konto from tabela > where strona ='MA') AS A > JOIN > (select id, konto from tabela > where strona ='WN') AS B > ON A.ID_FK=B.ID_FK > -- > ___________ (R) > /_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122 688 > ___/ /_ ___ ul. Na Szaniec 23/70 31-560 Kraków (012 378 31 98) > _______/ /_ http://trzypion.oldfield.org.pl/wieliczka/foto.html > ___________/ mail: _...@irc.pl GG: 3524356
w międzyczasie wpadłem na coś takiego. nie wiem, co jest 'bardziej optymalne'
select t.id_fk, max(decode(t.strona,'WN',t.konto, null)) as konto_wn, max(decode(t.strona,'MA',t.konto,null)) as konto_ma from tab t group by t.id_fk
nie ma joina z samą sobą, ale co szybsze - nie wiem.
cienki_bolek - 28-06-2007 00:01
pamperek@gmail.com napisał(a): > > w międzyczasie wpadłem na coś takiego. nie wiem, co jest 'bardziej > optymalne' > > select t.id_fk, max(decode(t.strona,'WN',t.konto, null)) as konto_wn, > max(decode(t.strona,'MA',t.konto,null)) as konto_ma > from tab t > group by t.id_fk > > nie ma joina z samą sobą, ale co szybsze - nie wiem. >
explain
=?ISO-8859-2?Q?Adam_P=B3aszczyca?= - 28-06-2007 00:01
On Tue, 26 Jun 2007 16:06:58 -0700, pamperek@gmail.com wrote:
>w międzyczasie wpadłem na coś takiego. nie wiem, co jest 'bardziej >optymalne'
Nie może być.
-- ___________ (R) /_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122 688 ___/ /_ ___ ul. Na Szaniec 23/70 31-560 Kraków (012 378 31 98) _______/ /_ http://trzypion.oldfield.org.pl/wieliczka/foto.html ___________/ mail: _555@irc.pl GG: 3524356
szaman - 30-06-2007 00:02
pamperek@gmail.com pisze: > cześć! > > mam dane w formacie: > > id_fk strona konto > 1 WN 5100 > 1 MA 7100 > > a chcę ja zamienić na > id_fk konto_wn konto_ma > 1 5100 7100 > > macie pomysł na sprytnego sqlka, który sobie z tym poradzi? > > danych jest oczywiście więcej, ale jak pomożecie z tym to z resztą > sobie poradzę. > pomożecie? :) > > dzięki! > > 2m > Ten self join oczywiście zadziała ale można inaczej - według mnie prościej - kto co lubi to jego sprawa.
Np.
Select id ,Max(decode(strona,'WN',konto) winien ,Max(decode(strona,'MA',konto) winien from ...
GROUP BY id;
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.pllunadance.htw.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 |
|