Help Query Insert con troppe condizioni...

di il
3 risposte

Help Query Insert con troppe condizioni...

Ciao a Tutti! Oggi il mio dilemma è questo, vorrei realizzare una query di accodamento che:
- selezioni da una tab (chiamata "FC") tutti i record che hanno un opportuno campo SI/NO (chiamato "Trasferimento") impostato su SI
- poichè questa tab ha un campo ("Id_paziente")che è foreign Key in un altra tab ("Pazienti" dove la primary corrispondente è "Codice_fiscale" ), accodi i record corrispondenti (cioè. in verità non tutto il record ma solo alcuno campi che voglio io) della tab Pazienti, appunto, in un'altra tab chiamata "Pazienti_BB"
- ma PRIMA dell'accodamento controlli anche che in Pazienti_BB non ci siano già record uguali a quelli che stiamo per aggiungere, e nel caso non accodarli (in modo da evitare che mi dia messaggi di errore, visto che Codice_fiscale è PK anche lì)
Ora, io ho scritto una query che svolge i primi due punti:
INSERT INTO Pazienti_BB
SELECT Codice_fiscale AS Codice_fiscale, Cognome AS Cognome, Nome AS Nome, Genere AS Genere, Etnia AS Etnia, Data_nascita AS Data_nascita, Città_nascita AS Città_nascita
FROM Pazienti
WHERE Codice_fiscale IN (SELECT Id_Paziente
FROM FC WHERE FC.Trasferimento = TRUE);

Ma per il terzo sono in alto mare....idee? Mi sono spiegato bene??
Grazie!!

3 Risposte

  • Re: Help Query Insert con troppe condizioni...

    Non so leggere SQL. Ragiono per logica. Per essere sicuro di non accodare gli stessi valori usa una "query dati non corrispondenti" (esiste una apposita procedura guidata), poi la trasformi in query di accodamento.
  • Re: Help Query Insert con troppe condizioni...

    Gmaster non vedo TUTTA la query ... saresti cos' cortese da entrare in visualizzazione SQL e copiarne il contenuto e poi incollarlo qui per poterti aiutare meglio ?

    In sostanza manca la sintassi delle JOIN tra le tabelle ...
  • Re: Help Query Insert con troppe condizioni...

    No no, è tutta lì no ho scritto altro....comunque oggi credo di aver trovato la soluzione, in pratica ho usato la condizione NOT IN:
    INSERT INTO Pazienti_BB
    SELECT Codice_fiscale AS Codicefiscale, Cognome AS Cognome, Nome AS Nome, Genere AS Genere, Data_nascita AS Data_nascita
    FROM Pazienti
    WHERE Codice_fiscale IN (SELECT Id_Paziente
    FROM FC WHERE FC.Trasferimento = TRUE) AND (Pazienti.Codice_fiscale NOT IN (SELECT Codicefiscale FROM Pazienti_BB));

    E per ora sembra funzionare! Troppo machinosa??
Devi accedere o registrarti per scrivere nel forum
3 risposte