Autor Zpráva
katamaran
Profil *
Nazdar,
ako mam spravit dopyt na tieto tabulky

-----------------
ZAMESTNANCI
-----------------
Column Name DataType Nullable Default Primary Key
ID NUMBER No - 1
MENO VARCHAR2(25) No - -
PRIEZVISKO VARCHAR2(25) No - -

-----------------
ZASIELKA
-----------------
Column Name DataType Nullable Default Primary Key
ID NUMBER No - 1
ID_ZAMESTNANEC NUMBER No - -

tak aby vysledna tabulka vyzerala takto:
MENO PRIEZVISKO POCET_ZASIELOK

skusal som to cez joiny a pouzil som tam group by na ID_ZAMESTNANEC a count na ZASIELKA.ID ale stale mi vypisuje ze podla toho stlpca nemozem robit GROUP BY

Moze mi niekto napisat query ako by to malo vyzerat. Dikes
Kajman_
Profil *
select z.meno, z.prezvisko, count(b.id) pocet_zasielok from zamestanci z left join zasielka b on z.id=b.id_zamestnanec
group by z.id, z.meno, z.prezvisko
katamaran
Profil *
ok diky pomohlo...
este mi mozes povedat ako zvisim timestamp o jeden mesiac ? lebo ak dam timestamp + 30 tak mi to zvisi o 30 dni ale nebude to dobre ak mesiac bude mat 31 dni
dik
katamaran
Profil *
proste chcel by som nieco take aby

select z.meno, z.priezvisko, count(b.id) pocet_zasielok from zamestnanci z left join zasielka b on z.id=b.id_zamestnanec
group by z.id, z.meno, z.priezvisko order by pocet_zasielok desc where b.cas_odoslania > (select systimestamp - "MESIAC" from dual );
Kajman_
Profil *
Pokud je to oracle, tak zkuste add_months, pokud pg tak možná systimestamp - interval '1 month'.
katamaran
Profil *
ano robim to v oracle,
spravil som to takto:

select z.meno, z.priezvisko, count(b.id) pocet_zasielok
from zamestnanci z
left join zasielka b
on z.id=b.id_zamestnanec
group by z.id, z.meno, z.priezvisko, b.cas_odoslania
order by pocet_zasielok desc
where b.cas_odoslania > (select add_months(systimestamp, -1) from dual);

ale nechapem preco to nefunguje, ked dam osobitne select add_months(systimestamp, -1) from dual tak to vypise vporiadku, ale ked to len spojim s where tak mi vypise
ORA-00933: SQL command not properly ended
Kajman_
Profil *
tak dejte jednoduše
where b.cas_odoslania > add_months(systimestamp, -1)
katamaran
Profil *
no skusam to takto

select z.meno, z.priezvisko, count(b.id) pocet_zasielok
from zamestnanci z
left join zasielka b
on z.id=b.id_zamestnanec
group by z.id, z.meno, z.priezvisko
order by pocet_zasielok desc
where b.cas_odoslania > add_months(systimestamp, -1);

ale stale vypisuje ORA-00933: SQL command not properly ended
Kajman_
Profil *
where musí být před group by

možná by to mohlo jít takto

select z.meno, z.priezvisko, count(b.id) pocet_zasielok
from zamestnanci z, zasielka b
where b.cas_odoslania > add_months(systimestamp, -1)
and z.id=b.id_zamestnanec
group by z.id, z.meno, z.priezvisko
order by 3 desc
katamaran
Profil *
velmi pekne dakujem... babral som sa tu s tym cely den... uz to ide
Toto téma je uzamčeno. Odpověď nelze zaslat.

0