Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420

    [SQL]

    ragazzi date queste tabelle:
    codice:
    create table autore(
    nome varchar(20) primary key not null,
    istituzione varchar(20) not null,
    nazione varchar(20) not null
    )
    without oids;
    
    create table relazione(
    codice int primary key not null,
    titolo varchar(20) not null
    )without oids;
    
    create table stesura(
    autore varchar(20) not null
    references autore(nome)
    on delete cascade 
    on update restrict,
    relazione int not null
    references relazione(codice)
    on delete cascade 
    on update restrict,
    primary key(autore, relazione)
    )without oids;
    
    create table coordinatore(
    nome varchar(20) primary key not null,
    sessione varchar(20) unique not null
    )without oids; 
    
    create table presentazione(
    relazione int primary key not null
    references relazione(codice)
    on delete cascade 
    on update restrict,
    autore varchar(20) not null
    references autore(nome)
    on delete cascade 
    on update restrict,
    sessione varchar(20) not null
    references coordinatore(sessione)
    on delete cascade 
    on update restrict
    )without oids;
    mi si chiede: Visualizzare, per ciascuna delle relazioni presentate che hanno almeno un autore di
    nazionalità italiana, il titolo e il numero degli autori di nazionalità italiana che hanno
    partecipato alla sua stesura


    Io sn riuscito a fare questo:
    codice:
    select r.titolo, count()
    from stesura s join relazione r on s.relazione = r.codice
    group by s.relazione, r.titolo, s.autore
    having s.autore in (select a.nome from autore a where a.nazione = 'italia')
    ma da qua come faccio a visualizzare il numero degli autori di nazionalità italiana???
    the sALIEN

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    select r.titolo, count(a.nome)
    from relazione r, stesura s
    left outer join autore a on s.autore = a.nome
    where r.codice = s.relazione
    and a.nazione = 'italia'
    and r.codice in
    (select distinct rr.codice
    from relazione rr, stesura ss, autore aa
    where rr.codice = ss.relazione
    and ss.autore = aa.nome
    and aa.nazione = 'italia')

    adesso non posso provarlo, ma in ogni caso è uno spunto

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420
    ok ora provo
    the sALIEN

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420
    forse mancava questo: group by r.titolo

    a quello che hai scritto.. xkè altrimenti non va
    the sALIEN

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.