+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

immissione dati combo singoli

  1. #1
    tatix non è in linea Scolaretto
    Buonasera,
    in una combo ho inserito questo codice nella casella origine riga

    SELECT FORNITORE.ID_Fornitore, FORNITORE.Nome_fornitore FROM FORNITORE INNER JOIN ACQUISTO_MATERIALE ON FORNITORE.[ID_Fornitore] = ACQUISTO_MATERIALE.[Fornitore] GROUP BY FORNITORE.Nome_fornitore, ACQUISTO_MATERIALE.Fornitore;
    

    cioè mi inserisce tutti i fornitori che sono presenti nella tabella fornitori e presenti nella tabella ordine di acquisto.

    Il punto è che se ho più fornitori uguali nella tabella ordini di acquisto, nella combo questi fornitori vengono ripetuti.

    Ho provato a raggrupparli per nome ma non funziona.

    Come posso fare per eliminare il problema?

    Inoltre perchè il tag [codice] a volte mi funziona e a volte no.

    Grazie
    Ultima modifica di @Alex; 15-09-2021 20:13  Motivo: non inventare i TAG per il codice...!!!!!

  2. #2
    tatix non è in linea Scolaretto
    Grazie ho risolto in questo modo:
    SELECT FORNITORE.ID_Fornitore, FORNITORE.Nome_fornitore, ACQUISTO_MATERIALE.Fornitore FROM FORNITORE INNER JOIN ACQUISTO_MATERIALE ON FORNITORE.[ID_Fornitore] = ACQUISTO_MATERIALE.[Fornitore] GROUP BY FORNITORE.ID_Fornitore, FORNITORE.Nome_fornitore, ACQUISTO_MATERIALE.Fornitore;
    

  3. #3
    Sgrubak non è in linea Scribacchino
    Ammettendo che sia presente una relazione FK tra i campi [ACQUISTO_MATERIALE.Fornitore] e [FORNITORE.ID_Fornitore], la JOIN è superflua.
    Sarebbe sufficiente una query del tipo:
    SELECT DISTINCT Fornitore
    FROM ACQUISTO_MATERIALE
    
    Se il tuo obiettivo è mostrare il nome del fornitore, allora dovrebbe diventare:
    SELECT DISTINCT F.Nome_fornitore
    FROM ACQUISTO_MATERIALE AS AM
    INNER JOIN FORNITORE AS F ON F.ID_Fornitore = AM.Fornitore
    
    In ogni caso, quel che ti serve è la DISTINCT, più che il GROUP BY.

  4. #4
    tatix non è in linea Scolaretto
    Intanto Grazie per il tuo intervento.

    Ammettendo che sia presente una relazione FK tra i campi [ACQUISTO_MATERIALE.Fornitore] e [FORNITORE.ID_Fornitore], la JOIN è superflua.

    Si, esite una [U-M] tra Fornitore.ID_Fornitore e AM.fornitore

    Se il tuo obiettivo è mostrare il nome del fornitore, allora dovrebbe diventare:

    In parte e' questo ma anche inserire nella combo tutti i fornitori che hanno ordini di acquisto aperti

    SELECT DISTINCT F.Nome_fornitore
    FROM ACQUISTO_MATERIALE AS AM
    INNER JOIN FORNITORE AS F ON F.ID_Fornitore = AM.Fornitore

    ho sostituito:
    SELECT DISTINCT FORNITORE.Nome_fornitore, FROM ACQUISTO_MATERIALE AS ACQUISTO_MATERIALE INNER JOIN FORNITORE AS FORNITORE ON FORNITORE.[ID_Fornitore] = ACQUISTO_MATERIALE.Fornitore;
    
    ma mi da errore di sintassi
    Ultima modifica di tatix; 16-09-2021 17:57 

  5. #5
    Stai prendendo l'abitudine di evidenziare con un colore le frasi. Evita di farlo perché non è necessario.
    ℹ️ Leggi di più su AntonioG ...

  6. #6
    L'avatar di Max.Riservo
    Max.Riservo non è in linea Scribacchino
    Quote Originariamente inviato da tatix Visualizza il messaggio
    SELECT DISTINCT FORNITORE.Nome_fornitore
    ,
    FROM ACQUISTO_MATERIALE AS ACQUISTO_MATERIALE
    INNER JOIN FORNITORE AS FORNITORE
    ON FORNITORE.[ID_Fornitore] = ACQUISTO_MATERIALE.Fornitore;
    
    ma mi da errore di sintassi
    Forse c'è una virgola di troppo o forse manca un campo dopo la virgola ...

  7. #7
    Sgrubak non è in linea Scribacchino
    Quote Originariamente inviato da tatix Visualizza il messaggio
    In parte e' questo ma anche inserire nella combo tutti i fornitori che hanno ordini di acquisto aperti
    Attenzione allora perché con la query per come l'hai strutturata tu, tiri fuori tutti i fornitori e non solo quelli che hanno "ordini aperti". Bisogna correttamente strutturare la clausola WHERE ammesso che ci sia nella tabella un campo che indichi quali ordini sono aperti e quali no.


    Quote Originariamente inviato da tatix Visualizza il messaggio
    ma mi da errore di sintassi
    Oltre al consiglio che ti ha dato Max, attenzione anche all'uso dell'ALIAS

    Io ti avevo scritto:

    ...FROM ACQUISTO_MATERIALE AS AM...
    
    e non
    ...FROM ACQUISTO_MATERIALE AS ACQUISTO_MATERIALE...
    
    P.S: Per quotare i messaggi, scorri la discussione fino alla frase che ti interessa citare e selezionala per intero con il cursore. Al rilascio del click comparirà un piccolo menù con la scritta "Quote". Seleziona la scritta e nella risposta ti riporterà il testo da quotare già inserito negli appositi TAG corredato di attributi, a patto che tu sia in modalità di "risposta veloce" e non in "Modalità avanzata".

  8. #8
    tatix non è in linea Scolaretto
    Ho scritto
    SELECT DISTINCT FORNITORE.Nome_fornitore FROM ACQUISTO_MATERIALE AS AM INNER JOIN FORNITORE AS F ON FORNITORE.[ID_Fornitore] = ACQUISTO_MATERIALE.Fornitore;
    
    ma non funziona. Mi da errore di sintassi nell'istruzione JOIN

  9. #9
    Sgrubak non è in linea Scribacchino
    Quote Originariamente inviato da tatix Visualizza il messaggio
    Mi da errore di sintassi nell'istruzione JOIN
    Perché gli alias o li usi, o non li usi. Rileggi bene la mia query al post #3. Vedrai che nella JOIN i campi sono preceduti dall'alias e non dal nome della tabella.
    O togli gli alias e scrivi il nome della tabella per intero, oppure li usi come prefisso in tutta la query.

  10. #10
    tatix non è in linea Scolaretto
    Scusa ma non so cosa sono gli alias
    Ora riprovo. Mi interessa molto capire il DISTINCT come si comporta.
    Il link l'ho studiato e me lo sono messo tra i preferiti
    Grazie anche per questo

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Controllo immissione valori combo
    Da skipperdan nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 13-10-2016, 22:29
  2. Controllo immissione dati
    Da Fire nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 21-09-2015, 17:40
  3. immissione dati da maschera
    Da acava77 nel forum Microsoft Word
    Risposte: 2
    Ultimo Post: 08-01-2009, 19:49
  4. Immissione/Prelievo dati da database
    Da ibrucomela nel forum PHP
    Risposte: 1
    Ultimo Post: 27-12-2005, 16:13
  5. [VB6] Immissione dati su Database Access
    Da marchino86 nel forum Visual Basic 6
    Risposte: 8
    Ultimo Post: 18-10-2005, 19:28