Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z funkcją SQL Developer
Forum PHP.pl > Forum > Bazy danych > Oracle
adamzone
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.
nospor
Cytat
PROBLEM Z FUNKCJĄ SQL

1) Nie krzycz. Popraw tytuł na nie krzyczący
2) Każdy tu ma problem
Temat: Jak poprawnie zatytulowac watek
3) Proszę używać bbcode! DLa zapytań sql używa się bbcode SQL
bww
Co tutaj jest marketem, a co transakcją?
Jeżeli to jest możliwe do zrealizowania
Cytat
Pisanie kilkunastu oddzielnych zapytań like '%nazwa_marketu%' to nie jest najlepszy pomysł.
to pewnie wystarczy napisać dobre zapytanie z grupowaniem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.