![]() |
![]() ![]() |
![]() |
![]() ![]()
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 |
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.06.2025 - 00:23 |