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

    [VB.NET + SQL] Problema con Query SQL

    Descrivo la situazione, ho un DB su SQL Server con, fra le altre, le tabelle UNITA e ARCHIVI (UNITA sta per "Unità di lavoro"). Dall'applicazione quando l'utente crea una nuova unità di lavoro (quindi un nuovo record nella tabella UNITA) può scegliere un archivio (quindi una riga della tabella ARCHIVI) a cui associare l'unità di lavoro che sta creando, ma questa associazione è facoltativa.
    Fra i campi della tabella UNITA vi è il campo IDARC che non è altro che il campo in cui vado a scrivere l'ID dell'archivio a cui l'unita di lavoro è associata, se l'utente non associa l'archivio all'unità di lavoro in quel campo scrivo "-1" che non corrisponde a nessuna riga della tabella ARCHIVI.

    Quando poi voglio elencare le unità di lavoro inserite faccio questa query che prende anche, dalla tabella ARCHIVI, i dati dell'archivio associato all'unità di lavoro:

    codice:
    sql = "SELECT UNI.IDUNI, UNI.DEFIN, UNI.IDARC, " _
    & "ARC.NOME, ARC.VERS, UNI.NUMFILE, " _
    & "UNI.NUMIND, UNI.NUMARC, UNI.DATACRE, UNI.DATAAPR " _
    & "FROM UNITA UNI, ARCHIVI ARC " _
    & "WHERE UNI.IDARC=ARC.IDARC ORDER BY UNI.DATACRE"
    Il problema è che non mi seleziona le unità di lavoro che non sono associate ad un archivio (che quindi hanno il campo IDARC=-1) perchè la condizione UNI.IDARC=ARC.IDARC non è soddisfatta in quanto nessuna riga della tabella ARCHIVI ha IDARC=-1.

    Spero si capisca qualcosa.... e che qualcuno possa darmi un'indicazione di come venire a capo di questa query.....

    Grazie mille in anticipo....
    zoodany..

    www.zoodany.it

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Usa una LEFT JOIN.

    codice:
    sql = "SELECT UNI.IDUNI, UNI.DEFIN, UNI.IDARC, " _
    & "ARC.NOME, ARC.VERS, UNI.NUMFILE, " _
    & "UNI.NUMIND, UNI.NUMARC, UNI.DATACRE, UNI.DATAAPR " _
    & "FROM UNITA UNI LEFT JOIN ARCHIVI ARC ON (UNI.IDARC=ARC.IDARC) " _
    & "ORDER BY UNI.DATACRE"
    Ciao, Brainjar

  3. #3
    Grazie grazie grazie mille...
    zoodany..

    www.zoodany.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    Spero di non dovere MAI e dico MAI manutenere in futuro questa applicazione
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

  5. #5
    Originariamente inviato da vaitrafra
    Spero di non dovere MAI e dico MAI manutenere in futuro questa applicazione
    Perchè?
    zoodany..

    www.zoodany.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    Perchè stai hadrcodando tutte le query nel codice, scritte tutte in maiuscolo e con dei ritorni a capo poco sensati.

    Usa le stored procedures.
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

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.