Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: Query SQL

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26

    Query SQL

    Ciao a tutti,
    riporto di seguito il codice sql di una query di accodamento ad una tabella (ORDINI). Non ci sono errori di sintassi ma 'semplicemente' questa non produce i risultati attesi.
    Qualcuno può aiutarmi a capire dov'è l'intoppo??

    Una breve descrizione delle mie intenzioni prima di riportare il codice.
    La seguente query deve, in base al codice ean inserito, selezionare da tab_offerte il contenuto dei campi indicati nella select relativi all'ean con il prezzo Netto minimo rinvenuto.
    In excel risolverei con una cerca.vert ordinando la tabella offerta in modo crescente per ean.

    ---SQL------------------
    INSERT INTO ORDINI ( cod_offerta, data_offerta, ean, Descrizione, rag_soc, Netto, [Pz/ct] )
    SELECT tab_offerte.ID, tab_offerte.[data offerta], tab_offerte.Ean, tab_offerte.Descrizione, tab_fornitori.rag_soc, tab_offerte.Netto, tab_offerte.[Pz/ct]
    FROM tab_fornitori INNER JOIN tab_offerte ON tab_fornitori.cod_for=tab_offerte.cod_forn
    WHERE (((tab_offerte.Ean)=[scan a product]) AND ((tab_offerte.Netto)=(Select MIN (tab_offerte.Netto) from tab_offerte)));
    -------------------------

    grazie in anticipo per il preziosissimo aiuto.

    Antonio

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao

    se esegui solo la select ottieni il risultato voluto?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26
    no, lo stesso non ottengo nulla

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    quindi il problema è la select...forse l'inner join non punta ad un record della tabella corrispondente e quindi non restituisce nulla

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26
    eliminando l'input dell'ean :

    WHERE (((tab_offerte.Ean)=[scan a product]

    mi seleziona semplicemente il record con il prezzo minimo.
    Ma a me serve che la query selezioni il
    record con il prezzo minimo nell'ambito di un certo ean inserito dall'esterno

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26
    desumo che il join sia corretto

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    quundi verifica il valore [scan a product]...


  8. #8
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26
    è assolutamente un codice ean presente nella tabella offerte.

    ti riporto i due codici.
    - Il primo in (blu) funziona ma non è quello che serve a me.
    - Il secondo in rosso (che ho postato all'inizio della discussione) è quello che vorrei

    SELECT tab_offerte.ID, tab_offerte.[data offerta], tab_offerte.Ean, tab_offerte.Descrizione, tab_fornitori.rag_soc, tab_offerte.Netto, tab_offerte.[Pz/ct]
    FROM tab_fornitori INNER JOIN tab_offerte ON tab_fornitori.cod_for = tab_offerte.cod_forn
    WHERE (((tab_offerte.Netto)=(Select MIN (tab_offerte.Netto) from tab_offerte)));


    INSERT INTO ORDINI ( cod_offerta, data_offerta, ean, Descrizione, rag_soc, Netto, [Pz/ct] )
    SELECT tab_offerte.ID, tab_offerte.[data offerta], tab_offerte.Ean, tab_offerte.Descrizione, tab_fornitori.rag_soc, tab_offerte.Netto, tab_offerte.[Pz/ct]
    FROM tab_fornitori INNER JOIN tab_offerte ON tab_fornitori.cod_for = tab_offerte.cod_forn
    WHERE (((tab_offerte.Ean)=[scan a product]) AND ((tab_offerte.Netto)=(Select MIN (tab_offerte.Netto) from tab_offerte)));

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ....si ma credo il il problema lo hai in

    WHERE (((tab_offerte.Ean)=[scan a product])

    quindi c'è qualcosa che fallisce in questa condizione

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26
    non credo in quanto: se, la query di accodamento la creo solo con l'input dell'ean da ricercare

    WHERE (((tab_offerte.Ean)=[scan a product])

    questa funziona , inserendomi nella tabella ordini tutti i records della tabella offerte che corrispondono all'ean inserito dall'esterno.
    Ultima modifica di ANTOSFO; 13-05-2015 a 16:06

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.