Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413

    aiuto query sql server 2005

    Ciao a tutti,

    non riesco ad ottenere i risultati che vorrei da una query in sql server 2005. Premetto che avrei anche trovato la soluzione che dal sql management funziona ma poi dalla mia pagina asp (con i driver ole db) non restituisce lo stesso risultato.

    Dunque,

    ho una tabella fornitori e una tabella certificazioni in relazione 1 -> N.

    Vorrei selezionare tutti i fornitori indistintamente che abbiano o meno una certificazione, e se ce l'hanno, che venga pescata la descrizione della certificazione con codice 99.

    io pensavo di fare una left join e poi nel where di filtrare per codice=99 or codice IS NULL. Ma non è corretto perchè un fornitore potrebbe non avere la certificazione codice 99 ma un'altra con altro codice.

    Allora ho provato cosi e da sql management funziona ma dalla mia pagina no:

    codice:
    SELECT fornitori.*,certificazioni.descrizione FROM fornitori LEFT JOIN certificazioni ON fornitori.idfornitore = certificazioni.idfornitore AND (certificazioni.cod = 99 OR certificazioni.cod IS NULL)
    Come detto dal client di sql server 2005 vedo i risultati che vorrei, tramite asp e ole db no.

    Perche?

    come potrei risolvere la mia query?

    grazie a tutti


  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma al posto dell'AND non ci andrebbe una WHERE?

    Roby

  3. #3
    in quel caso la AND nella JOIN è lecita. però proverei comunque la sostituzione

    codice:
    SELECT fornitori.*,certificazioni.descrizione 
    FROM fornitori LEFT JOIN certificazioni 
    ON fornitori.idfornitore = certificazioni.idfornitore 
    WHERE (certificazioni.cod = 99 OR certificazioni.cod IS NULL)

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413
    ho pensato anche io quella solzione ma non mi estrarrebbe tutti i fornitori...
    perche potrebbe esserci un fornitore che non ha la certificazione codice 99 ma magari ha un altro codice quindi codice=99 OR codice IS NULL non si verificherebbe mai...

    io voglio tutti i fornitori con la descrizione della certificazione 99 (e se non hanno la 99 voglio che comunque il fornitore venga preso lo stesso )

    grazie

  5. #5
    la query dice:

    estrai tutti i fornitori, abbinati e NON (LEFT join), poi seleziona i codici 99 OPPURE i codici null: perché non va bene?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413
    ho provato ma mi esclude i fornitori che hanno una certificazione che non sia la 99.

    invece io vorrei che anche questi venissero presi ma ovviamente nella descrizione della certificazione non comparisse nulla...(dato che non ci sarebbe un legame)


  7. #7
    scusa, ma allora hai formulato male sia la query, che la spiegazione a noi! li vuoi tutti? non mettere WHERE!

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413
    no ma infatti la where non ci andrebbe, era un tentativo andato a male...

    io vorrei selezionare tutti i fornitori con o senza la certificazione con codice 99, e se ce l'hanno, stampare la descrizione della certificazione.

    calcolate che un fornitore puo avere piu certificazioni, ma a me interessa solo la 99...

    Help...

  9. #9
    Originariamente inviato da alexinside83
    no ma infatti la where non ci andrebbe, era un tentativo andato a male...

    io vorrei selezionare tutti i fornitori con o senza la certificazione con codice 99, e se ce l'hanno, stampare la descrizione della certificazione.

    calcolate che un fornitore puo avere piu certificazioni, ma a me interessa solo la 99...

    Help...
    fantastico, le vuoi tutte ma ti interessa SOLO la 99

    per me

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413
    ehmmm...probabilmente non riesco ad essere chiaro.

    Io devo stampare tutti i fornitori e vicino la descrizione della certificazione codice 99.

    ma non tutti hanno questa certificazione (ma potrebbero averne di altre, che pero a me non interessano). Pero vorrei che cmq per chi non ha la 99, il nome del fornitore comparisse lo stesso e vicino il campo descrizione risultasse vuoto.

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