Witam wszystkich!
Mam takie oto dwie tabele: tabela_1 oraz slo_mcc
create table tabela_1
(
id_operacji(12) primary key,
id_karty number,
operationtypeid number,
bookdate date,
amount number(12,2),
opis_transakcji(40),
nazwa_merchanta(25),
mcc_code(4)
)
create table slo_MCC
(
MCC char(4) not null,
kat_1 varchar(15),
kat_2 varchar(75),
kat_3 varchar(95)
)
Z tych tabel potrzebuję wydobyć informację o nazwie merchanta o kodzie mcc i kodzie mcc z tabeli slo_mcc tak, żeby mcc_code = mcc.
Połączyłem te tabele w taki o to sposób:
SELECT MCC, KAT_1, KAT_2, KAT_3 FROM SLO_MCC, TABELA_1 WHERE SLO_MCC.MCC = TABELA_1.MCC_CODE
Tylko jak policzyć jednym zapytaniem liczbę transakcji w poszczególnych marketach?
Pisanie kilkunastu oddzielnych zapytań like '%nazwa_marketu%' to nie jest najlepszy pomysł.
Gdybym dysponowali odpowiednią funkcją wtedy takie zapytanie mogłoby wyglądać tak:
select funkcja(mcc, opis, 'kat1'), funkcja(mcc, opis, 'kat2'), funkcja(mcc, opis, 'kat3'), count(*)
from tabela_1
group by funkcja(mcc, opis, 'kat1'), funkcja(mcc, opis, 'kat2'), funkcja(mcc, opis, 'kat3')
Potrzebuję napisać funkcję, która będzie pobierać mcc_code, nazwe_merchanta (z tabela_1)
i dopasowywać mcc, kat_1, kat_2, kat_3 z tabeli slo_mcc tak, mcc_code= mcc
Czy ktoś jest na tyle dobry i mógłby mi w tym pomóc, ponieważ nie mogę sobie z tym poradzić?
Oto przykładowa funkcja, którą próbowałem napisać:
create or replace FUNCTION get_kategoria (in_mcc_code in int)
RETURN varchar2(100) as
rtr varchar2(100);
BEGIN
select 'r' into rtr
from test
where rownum < 1;
return (rtr);
END get_kategoria;
Jednak kompiluje się z ostrzeżeniem i nie mam pomysłu co dalej z tym zrobić, jak to ugryźć?
Bardzo proszę expe[sql][/sql]rtów o pomoc.
Pozdrawiam,
Adam.