Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z funkcją SQL Developer
adamzone
post 25.01.2012, 09:57:19
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 25.01.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował adamzone 25.01.2012, 10:23:07
Go to the top of the page
+Quote Post
nospor
post 25.01.2012, 10:05:44
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bww
post 14.02.2012, 19:40:25
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 14.02.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 00:23