problem select   zodpovězená otázka

SQL

caute mam nasledujucu situaciu: tri tabulky

osoba: id, priezvisko

kurz: id, nazov, datum_koniec

clenovia_kurzu:id, osoba_id, kurz_id

a moj problem je: jedna osoba moze byt zaradena do viacerych kurzov

potrebujem select, ktory my vyselectuje priezviska vsetkych osob, ktorych najneskorsi absolvovany kurz je starsi ako 2 roky.

dufam ze som to dost zrozumitelne popisal:)). Trapim sa s tym uz dva dni a nic, vdaka

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Použijte group by podle osoby a v having profiltrujte osoby podle požadovaného kritéria:

select osoba.priezvisko, 'DatumPoslednihoKurzu'=max(kurz.datum_koniec), 'StariPoslednihoKurzu'=datediff(year, max(kurz.datum_koniec), getdate())
from
  osoba
  inner join clenovia_kurzu on clenovia_kurzu.osoba_id=osoba.id
  inner join kurz on kurz.id=clenovia_kurzu.kurz_id
group by osoba.id, osoba.priezvisko
having datediff(year, max(kurz.datum_koniec), getdate())>=2

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

super, vdaka presne toto som chcel.

A este keby som chcel zistit pocet mien, ktore my vypisalo, proste to len zratat?

vdaka

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Celý dotaz obalte ještě jedním selectem a použijte count():

select count(*)
from

(select osoba.priezvisko
from
  osoba
  inner join clenovia_kurzu on clenovia_kurzu.osoba_id=osoba.id
  inner join kurz on kurz.id=clenovia_kurzu.kurz_id
group by osoba.id, osoba.priezvisko
having datediff(year, max(kurz.datum_koniec), getdate())>=2) osoby

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nechcete si už konečně o tom SQL něco přečíst? Tohle je váš padesátý dotaz typu "potřebuji vyřešit tohle, napište mi někdo SQL". A on se vždycky někdo našel. Zatím...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback