Visualizzazione dei risultati da 1 a 3 su 3

Discussione: stringa sql

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    19

    stringa sql

    Non come risolvere questo problema anche se qualcosa mi dice che la soluzione è semplice:
    Database SQL7
    due tabelle
    tabella1: "soggetto" con campi matricola, cognome, nome
    tabella2: "libretto" con campi id_corso, matricola, data_iscrizione

    NB: possono esistere piu' id_corso per lo stesso soggetto,
    la relazione sta nel numero di matricola

    devo eseguire : delete * from libretto where data_iscrizione < 31/12/2000
    fin qui nessun problema

    ma devo pero' sfoltire anche la tabella soggetto di tutti i record
    che contengono un campo matricola che, una volta ripulita, non compaia piu' nella tabella libretto.

    Tento un esempio nella speranza di essere piu' chiara

    tabella libretto
    id_corso | matricola | data_iscrizione
    1 | 0001 | 01/01/1999
    2 | 0002 | 01/01/1999
    3 | 0003 | 01/01/1999
    4 | 0001 | 01/01/2002
    5 | 0001 | 01/01/2003
    6 | 0001 | 01/01/2004
    7 | 0002 | 01/01/2005
    8 | 0004 | 01/01/2005
    9 | 0005 | 01/01/2005
    10 | 0005 | 01/01/2005


    tabella soggetto
    matricola | cognome | nome
    0001 | rossi1 | mario1
    0002 | rossi2 | mario2
    0003 | rossi3 | mario3
    0004 | rossi4 | mario4
    0005 | rossi5 | mario5

    dopo il delete * from libretto where data_iscrizione < 31/12/2000
    la tabella libretto avrà solo i seguenti record

    id_corso | matricola | data_iscrizione
    4 | 0001 | 01/01/2002
    5 | 0001 | 01/01/2003
    6 | 0001 | 01/01/2004
    7 | 0002 | 01/01/2005
    8 | 0004 | 01/01/2005
    9 | 0005 | 01/01/2005
    10 | 0005 | 01/01/2005

    a questo punto io dovrei dare una istruzione (e qui mi si bloccano le meningi ) che immagino comprenda "not exist"
    che darà come risultato nela tabella soggetto:

    tabella soggetto
    matricola | cognome | nome
    0001 | rossi1 | mario1
    0002 | rossi2 | mario2
    0004 | rossi4 | mario4
    0005 | rossi5 | mario5

    da cui dovrebbe sparire solo rossi3 e quindi la matricola 3
    che è l'unica a non avere iscrizioni posteriori allo 01/01/2001

    qualcuno mi aiuta ?
    ma vi prego abbiate pietà se la domanda è troppo sciocca.
    Grazie a chi vorrà rispondermi

  2. #2
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Cioè una cosa del genere:

    Delete * from tabellamatricola where matricola not in ( select matricola from tabellalibretto group by matricola);

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    19
    Esatto!!!!!!!!!!
    Sono proprio una frana tu ci hai impiegato pochi minuti io tutto il pomeriggio di ieri senza risultati
    Grazieeeeeeeeeeee

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.