Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Column 'name' in field list is ambiguous

    Salve a tutti, dopo aver caricato DDL e DML ho bisogno di visualizzare, se ci sono, i VETERINARI che hanno la stessa data di nascita dei CLIENTI... le tabelle sono queste :
    ********************************************/
    --Cancellazione di eventuali tabelle esistenti


    DROP TABLE IF EXISTS VISITA
    ;
    DROP TABLE IF EXISTS APPUNTAMENTO
    ;
    DROP TABLE IF EXISTS OCCUPAZIONESALE
    ;
    DROP TABLE IF EXISTS PAZIENTE
    ;
    DROP TABLE IF EXISTS CLIENTE
    ;
    DROP TABLE IF EXISTS VETERINARIO
    ;


    --Creazione della tabella VETERINARIO
    CREATE TABLE VETERINARIO
    (
    CF CHAR
    (16) PRIMARY KEY,
    NOME VARCHAR
    (50) NOT NULL,
    COGNOME VARCHAR
    (50) NOT NULL,
    LIVELLO CHAR
    (1),
    INDIRIZZO VARCHAR
    (100),
    DATANASCITA DATE
    )


    --Creazione della tabella CLIENTE
    CREATE TABLE CLIENTE
    (
    CF CHAR
    (16) PRIMARY KEY,
    NOME VARCHAR
    (50) NOT NULL,
    COGNOME VARCHAR
    (50) NOT NULL,
    INDIRIZZO VARCHAR
    (100),
    DATANASCITA DATE
    )


    --Creazione della tabella PAZIENTE
    CREATE TABLE PAZIENTE
    (
    CODANIM CHAR
    (5) PRIMARY KEY,
    NOME VARCHAR
    (50) NOT NULL,
    PROPRIETARIO CHAR
    (16),
    DATANASCITA DATE
    ,
    SPECIE VARCHAR
    (50),
    RAZZA VARCHAR
    (50),
    TAGLIA VARCHAR
    (20),
    COLORE VARCHAR
    (20),
    CONSTRAINT PAZIENTE_CLIENTE_FK FOREIGN KEY
    (PROPRIETARIO) REFERENCES CLIENTE(CF)
    )


    --Creazione della tabella OCCUPAZIONESALE
    CREATE TABLE OCCUPAZIONESALE
    (
    CF CHAR
    (16),
    CODSALA CHAR
    (5),
    DATA DATE
    ,
    ORAINIZIO TIME
    ,
    ORAFINE TIME
    ,
    PRIMARY KEY
    (CF, CODSALA, DATA, ORAINIZIO),
    CONSTRAINT OCCUPAZIONESALE_VETERINARIO_FK FOREIGN KEY
    (CF) REFERENCES VETERINARIO(CF)
    )


    --Creazione della tabella APPUNTAMENTO
    CREATE TABLE APPUNTAMENTO
    (
    CODANIM CHAR
    (5),
    CODVET CHAR
    (16),
    DATA DATE
    ,
    ORAINIZIO TIME
    ,
    PRIMARY KEY
    (CODANIM, CODVET,DATA, ORAINIZIO),
    CONSTRAINT APPUNTAMENTO_PAZIENTE_FK FOREIGN KEY
    (CODANIM) REFERENCES PAZIENTE(CODANIM),
    CONSTRAINT APPUNTAMENTO_VETERINARIO_FK FOREIGN KEY
    (CODVET) REFERENCES VETERINARIO(CF)
    )


    --Creazione della tabella VISITA
    CREATE TABLE VISITA
    (
    CODANIM CHAR
    (5),
    CODVET CHAR
    (16),
    DATA DATE
    ,
    ORAINIZIO TIME
    ,
    OK_PRIMA_DIAGNOSI CHAR
    (2) NOT NULL DEFAULT'NO',
    MALATTIA VARCHAR
    (50),
    PESO_GR FLOAT
    (6,2),
    DATA_GUARIGIONE DATE
    ,
    PRIMARY KEY
    (CODANIM, CODVET,DATA, ORAINIZIO),
    CONSTRAINT VISITE_PAZIENTE_FK FOREIGN KEY
    (CODANIM) REFERENCES PAZIENTE(CODANIM),
    CONSTRAINT VISITE_VETERINARIO_FK FOREIGN KEY
    (CODVET) REFERENCES VETERINARIO(CF)
    )


    E questo è quello che ho provato a fare, ricevendo l'errore nel titolo

    SELECT DATANASCITA
    FROM VETERINARIO AS R INNER JOIN CLIENTE AS B ON
    R.DATANASCITA = B.DATANASCITA

    Qualcuno potrebbe dirmi perchè?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    SQL non sa da quale tabella il campo proviene. Quindi bisogna indicare l’alias della tabella.

    R.DATANASCITA
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Grazie... Invece adesso dovrei selezionare solo i "canarini" che non hanno avuto una visita il '2000-03-20', ho provato così ma mi da semplicemente quelli che non hanno una data uguale a '2000-03-20' e in questa lista è compreso un canarino che invece ha avuto una visita quel giorno.
    SELECT DISTINCT CODANIM
    FROM VISITA
    WHERE DATA NOT IN ('2000-03-20')
    GROUP BY CODANIM
    HAVING CODANIM <=00003

    C'è un qualcosa per dire di prendere i valori opposti? Cioè visto che i canarini sono tre ed hanno codice ('00001', '00002', '00003') prendo in considerazione solo questi tre codici e impostando un where DATA='2000-03-20', prendo quelli che non hanno questa caratteristica.

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    select distinct codanim
    from visita v1
    where codanim not in
    (
    select codanim from visita v2
    where data in ('2000-03-20')
    )
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Grazie sei gentilissimo... Sto cercando anche su internet ma non riesco a capire come fare molte cose, per esempio ora dovrei trovare qual è il nome dell'animale che ha avuto più appuntamenti nel mese di gennaio 2000.

    SELECT P.NOME
    FROM PAZIENTE AS P
    WHERE APPUNTAMENTO.DATA='2000-01-*'

    Ho provato questo ma oltre a non funzionare non ha neanche senso...

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Guarda i comandi COUNT GROUP BY HAVING MAX BETWEEN
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    per il mese usa MONTH() e YEAR()

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.