Mam takie dwie tabelki w SQLite 3:
CREATE TABLE kody (
grupa INTEGER NOT NULL,
nazwa varchar(20) NOT NULL,
kod_nume INTEGER NULL,
kod_znak VARCHAR(20) NULL,
PRIMARY KEY ( grupa,nazwa ));
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 1, '', 0, '');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 1, 'MultiBank', 1, 'MultiBank');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 1, 'BZWBK', 2, 'Bank Zachodni WBK');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 1, 'mBank', 3, 'mBank');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 1, 'GETinBANK', 4, 'GetinBank');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 1, 'Narodowy Bank Polski', 10, 'NBP');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 4, '', 0, '');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 4, 'Polski Złoty', 1, 'PLN');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 4, 'Frank Szwajcarski', 2, 'CHF');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 4, 'Waluta EURO', 3, 'EUR');
INSERT INTO Kody ( grupa, nazwa, kod_nume, kod_znak ) VALUES ( 4, 'Amerykański dolar', 4, 'USD');
CREATE TABLE kursy_walut (
dzien INTEGER NOT NULL,
miesiac INTEGER NOT NULL,
rok INTEGER NOT NULL,
bank INTEGER NOT NULL,
kurs_sp DOUBLE NULL,
waluta INTEGER NULL,
spread DOUBLE NULL,
PRIMARY KEY( dzien, miesiac, rok, bank ));
INSERT INTO kursy_walut ( waluta, bank, rok, miesiac, dzien, kurs_sp, spread ) VALUES ( 2, 4, 2011, 12, 30, 3.8473, 0.2506 );
chce wyciągnąć z obu tabel kurs z danego dnia w taki sposób aby zamiast banku i waluty z tabeli kursy_walut podstawiała mi się kod_znak z tabeli kody.
Napisałem:
SELECT kursy_walut.rok, kursy_walut.miesiac, kursy_walut.dzien, kody.kod_znak, kursy_walut.kurs_sp
FROM kursy_walut
INNER JOIN kody ON kody.kod_nume = kursy_walut.bank AND kody.grupa = 1
WHERE rok = 2011 AND miesiac = 12 and dzien = 30;
Działa.
SELECT kursy_walut.rok, kursy_walut.miesiac, kursy_walut.dzien, kody.kod_znak, kursy_walut.kurs_sp
FROM kursy_walut
INNER JOIN kody ON kody.kod_nume = kursy_walut.bank AND kody.grupa = 1
INNER JOIN kody ON kody.kod_nume = kursy_walut.waluta AND kody.grupa = 4
WHERE rok = 2011 AND miesiac = 12 and dzien = 30;
Jednak przy próbie wyjęcia z tabeli nazwy waluty pisze mi kody.kod_znak jest dwuznaczy. Proszę o pomoc z poprawieniem tego zapytania. Dzięki bardzo za pomoc.