mssql - czy takie query jest =?iso-8859-2?Q?mo=BFliwe=3F?=
Jacek Osiecki - 01-07-2007 00:01
mssql - czy takie query jest =?iso-8859-2?Q?mo=BFliwe=3F?=
Witam,
SQLem posługuję się od dość dawna, ale nie jest to raczej zbyt zaawansowana znajomość języka :)
Pojawił mi się następujący problem: mam tabelę, w której są notowania kursów walut - jeden wiersz na komplet data+kolumna:
id_waluty | data | kurs
Gdzieś obok jest tabela waluty:
id | symbol
Chciałbym teraz uzyskać z tego tabelę, która w danym wierszu ma datę i listę wszystkich kursów, czyli np:
data | kurs_eur | kurs_usd | kurs_gbp | kurs_nok ...
itd, zależnie od tego ile walut jest wymienionych w tabeli waluty.
Nie wiem gdzie szukać przykładu takiego zapytania - bo zakładam że jak najbardziej da się takie stworzyć, tylko moja wiedza jest zbyt cienka ;) Jedyne co bym potrafił to zrobienie wieelkiego zapytania z subquery dla każdej waluty - co jest dramatycznie nieeleganckie i nieoptymalne.
Czy ktoś mógłby mi podsunąć pomysł na rozwiązanie - najchętniej wskazówki do jakiegoś artykułu który opisuje tego typu zapytania. Trochę szukałem wskazówek, ale znalezione odpowiedzi raczej nie były tymi które by choćby naprowadziły mnie na odpowiednie rozwiązanie :(
Pozdrawiam, -- Jacek Osiecki joshua@ceti.pl GG:3828944 "To nie logika, to polityka" (c) Kabaret pod Wydrwigroszem 2006
Grzegorz Danowski - 03-07-2007 00:04
=?iso-8859-2?Q?Re:_mssql_-_czy_takie_query_jest_mo=BFliwe=3F?=
"Jacek Osiecki" <joshua@ceti.pl> wrote in message news:slrnf8d8vo.1i3.joshua@router.sc... > SQLem posługuję się od dość dawna, ale nie jest to raczej zbyt > zaawansowana > znajomość języka :) .... > Chciałbym teraz uzyskać z tego tabelę, która w danym wierszu ma datę i > listę > wszystkich kursów, czyli np: > > data | kurs_eur | kurs_usd | kurs_gbp | kurs_nok ... > > itd, zależnie od tego ile walut jest wymienionych w tabeli waluty.
Zależy która wersja serwera. Jeśli 2005, to możesz użyć Pivot, jeśli starsze, to musisz trochę pokombinować, np. http://jdixon.dotnetdevelopersjourna...0_and_2005.htm A jeśli chcesz, by kolumny były dynamiczne, to powyższy sql musisz budować także dynamicznie. -- Pozdrawiam Grzegorz
szaman - 03-07-2007 00:04
Jacek Osiecki pisze: > Witam, > > SQLem posługuję się od dość dawna, ale nie jest to raczej zbyt zaawansowana > znajomość języka :) > > Pojawił mi się następujący problem: mam tabelę, w której są notowania kursów > walut - jeden wiersz na komplet data+kolumna: > > id_waluty | data | kurs > > Gdzieś obok jest tabela waluty: > > id | symbol > > Chciałbym teraz uzyskać z tego tabelę, która w danym wierszu ma datę i listę > wszystkich kursów, czyli np: > > data | kurs_eur | kurs_usd | kurs_gbp | kurs_nok ... >
Kilka dni temu były opisane dwa rozwiązania tego przypadku - czyli Self join oraz max(decode(...
Wątek dotyczył jak zamienić wiersze na kolumny.
Już nie pamiętam jak to w MSSQL było ale chyba da się w nim zrobić bez problemu zapytanie typu "tabela przestawna" co chyba jest najprostszym rozwiązaniem (a od MSSQL2005 chyba PIVOT to już zupełnie nie sprawia problemów)
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
MSSQL Express czy Oracle Express
Pobierananie danych z innej bazy danych w MSSQL
Migracja MSSQL 2005 CTP na 2005 Express
MSSQL , funkcja pobierajaca sama date (bez czasu) w funkcji
[mssql] insert do tabeli na podstawie danych z innej tabeli
zanotowane.pldoc.pisz.plpdf.pisz.pladwokat.keep.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 |
|