Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Errore di codice o del programma?

    Ho scritto questa query in Access
    codice:
    SELECT Cliente.nome,Cliente.numero FROM Cliente,
    (
     SELECT Richiede.codcliente FROM Richiede,
     (
      SELECT Lavoro.codice
      FROM Lavoro
      WHERE Lavoro.data=[Indicare l'anno solare in cui è stato svolto il lavoro]
     )AS Tab1
     WHERE Richiede.codlavoro=Tab1.codice
    )AS Tab2
    WHERE Cliente.codice=Tab2.codcliente;
    Quando viene salvata Il programma va in crash, sempre e su tutti i computer.
    Ho notato che lo fa quando ci sono più di una subquery.
    Il codice che ho scritto è sbagliato o hanno sbagliato a scrivere il codice di Access?

  2. #2
    www.senzasito.it/images/modello.gif


    Questo è il modello ER.

    Si tratta della seconda prova scritta degli esami di stato dell'anno scorso

  3. #3
    Per completezza, ecco la traccia

    Un vivaio vuole realizzare una base di dati per gestire le sue attività di vendita di piante e le sue attività esterne.
    Si vogliono memorizzare, oltre alle informazioni generali sulle diverse specie di piante, anche quelle relative alle specifiche piante presenti nel vivaio.
    Di ogni specie deve essere registrato il nome, un’immagine, una breve descrizione, informazioni relative al modo di coltivazione e alle caratteristiche dell’esposizione ed infine se si tratta di pianta da interno o da esterno.
    Si vogliono inoltre registrare i dati relativi alle piante effettivamente presenti nel vivaio, raggruppate per specie, eventualmente suddivise in diversi tipi in base al prezzo di vendita. Per ogni specie (o per ogni tipo, se la specie è suddivisa in tipi), è necessario registrare il numero di esemplari presenti nel vivaio e il costo di ogni esemplare.
    Si vogliono inoltre gestire le informazioni relative al personale che lavora nel vivaio (agronomi, operai, amministrativi) registrando i dati anagrafici, la qualifica e, per gli agronomi, l’anno di assunzione nel vivaio. Ogni singola specie del vivaio è sotto la responsabilità di un agronomo.
    Le attività esterne del vivaio, quali ad esempio la potatura o la manutenzione dei giardini, sono svolte dal personale in base alla qualifica (in generale ogni lavoratore è in grado di svolgere più di un’attività) e sono caratterizzate da un codice, da un nome, da un costo orario.
    Per le attività esterne si vogliono mantenere tutte le informazioni relative ai clienti che richiedono le attività, in particolare se si tratta di privati o di aziende, la data di prenotazione e quella di effettuazione dell’intervento richiesto e se per l’intervento sono necessarie piante del vivaio.

    Il candidato consideri la situazione sopra descritta, precisi eventuali ipotesi aggiuntive e realizzi:

    1.un’analisi della realtà di riferimento che illustri le premesse per i successivi passi della progettazione della base di dati;
    2.uno schema concettuale della base di dati;
    3.uno schema logico della base di dati;
    4.la definizione delle relazioni della base di dati in linguaggio SQL;
    5.le seguenti interrogazioni espresse in linguaggio SQL:
    6.dato il nome di una pianta, riportare quanti esemplari di quella pianta sono presenti nel vivaio;
    7.dato il nome di una stagione, visualizzare il nome delle piante che fioriscono in quella stagione;
    8.dato il nome di un intervento esterno, tra quelli previsti dal vivaio, riportare il nome e il telefono dei soggetti che hanno richiesto quell’intervento nel corso di un determinato anno solare;
    9.dato il nome di un agronomo, riportare quanti esemplari di piante sono sotto la sua responsabilità;
    10.visualizzare nome, descrizione e quantità di esemplari presenti nel vivaio, della pianta più economica da interno;
    11.riportare nome degli interventi richiesti non ancora evasi con il nome e il telefono del richiedente.

    Il candidato sviluppi inoltre, a scelta uno dei seguenti moduli:
    12.Si vuole realizzare un sito Internet che presenti al pubblico il vivaio illustrandone i prodotti e le diverse attività.
    13.Si vuole consentire la gestione delle attività esterne del vivaio attraverso una prenotazione on-line da parte dei clienti. Illustrare le modalità di realizzazione di questa funzione e gli strumenti tecnici adottabili.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Adesso come adesso non mi ricordo se Access supporta o meno le query innestate, ma rimane il fatto che quella non è un'istruzione SQL valida... non segue nemmeno la struttura della sintassi SQL:
    codice:
    SELECT <qualcosa>
    FROM <qualcosa>
    [ WHERE <qualcosa> ]
    [ HAVING <qualcosa> ]
    [ GROUP BY <qualcosa> ]
    [ ORDER BY <qualcosa> ]
    Cosa vuol dire:
    codice:
    SELECT ... ( SELECT ... )
    FROM ...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Originariamente inviato da LeleFT
    Adesso come adesso non mi ricordo se Access supporta o meno le query innestate, ma rimane il fatto che quella non è un'istruzione SQL valida... non segue nemmeno la struttura della sintassi SQL:
    codice:
    SELECT <qualcosa>
    FROM <qualcosa>
    [ WHERE <qualcosa> ]
    [ HAVING <qualcosa> ]
    [ GROUP BY <qualcosa> ]
    [ ORDER BY <qualcosa> ]
    Cosa vuol dire:
    codice:
    SELECT ... ( SELECT ... )
    FROM ...


    Ciao.

    Da questa subquery mi ricavo una tabella, infatti se vedi c'è scritto FROM Cliente,(SELECT...)
    Ho sempre fatto così senza problemi, tranne che con più di una subquer

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Hai ragione, mi era sfuggito che la subquery era messa dopo la FROM. In questo caso puoi venirne fuori creando una query separata per la subquery ed usarla all'interno della query come vosse una VIEW:
    codice:
    SELECT Lavoro.codice
    FROM Lavoro
    WHERE Lavoro.data=[Indicare l'anno solare in cui è stato svolto il lavoro]
    Salvi la query, ad esempio, come SubQuery1
    codice:
    SELECT Richiede.codcliente FROM Richiede, SubQuery1
    WHERE Richiede.codlavoro=SubQuery1.codice
    Salvi come SubQuery2, quindi
    codice:
    SELECT Cliente.nome,Cliente.numero FROM Cliente, SubQuery2
    WHERE Cliente.codice=SubQuery2.codcliente;
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Anche se così va bene, mi servirebbe fare un'unica query, mi stavo esercitando visto che dopodomani ho la seconda prova e non sciriviamo query separate, anche perchè non le abbiamo trattate e magari sono possibili solo in Acces mentre viene richiesto di usare l'SQL standard.
    Ho usato Access per comodità

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Beh, certo Access non è il massimo su cui esercitarsi, visto che prevede tante istruzioni non standard. Comunque l'SQL Standard prevede le VIEW, che si usano, solitamente, quando si devono innestare query sulla clausola FROM.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Originariamente inviato da LeleFT
    Beh, certo Access non è il massimo su cui esercitarsi, visto che prevede tante istruzioni non standard. Comunque l'SQL Standard prevede le VIEW, che si usano, solitamente, quando si devono innestare query sulla clausola FROM.


    Ciao.
    Si ma purtroppo non sono previste nel programma scolastico

  10. #10
    Si tratta della domanda 8 ?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.