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

    [SQLServer] Creazione vista - problemi con i join

    Dunque ragazzi, io ho la necessità di creare una vista che mi restituisca tutti i dati di un nominativo per mezzo di appositi join tra la tabella TBNominativi e altre tabelle tramite ID.
    in particolare ho bisogno di conoscere i due indirizzi di un particolare nominativo composti da:
    via, cap, città, prov, regione, stato.
    Nella TBNominativi i campi
    via, cap sono stringhe, mentre
    città, prov, regione, stato sono dei long e sono legati agli id delle tb corrispondenti: TBCittà, TBProvincie, TBRegioni, TBStati.
    vorrei creare un doppio join tra la TBNominativi e queste 4 tabelle di cui sopra per estrarre con una sola vista entrambi gli indirizzi IndirizzoUno e IndirizzoDue.
    Questa è la sintassi con cui ho creato la vista, che a livello grammaticale è corretta, ma non mi restituisce gli indirizzi:
    codice:
    CREATE VIEW view_Nominativo
    
    AS
    
    SELECT     
          TBNominativi.IDNominativo, TBNominativi.Cognome,
              TBNominativi.Nome, TBNominativi.SecondoNome, 
    
         (ISNULL(TBNominativi.Indirizzo1, '') + N' ' + 
            ISNULL(TBNominativi.Cap1, '') + N' ' + 
            ISNULL(tbCittà.Città, '') + N' ' +  
            ISNULL(tbProvince.Provincia, '') + N' ' +
            ISNULL(tbRegioni.Regione, '') + N' ' +  
            ISNULL(tbStati.Stato, '')) AS IndirizzoUno,
    
         (ISNULL(TBNominativi.Indirizzo2, '') + N' ' + 
            ISNULL(TBNominativi.Cap2, '') + N' ' + 
            ISNULL(tbCittà.Città, '') + N' ' +  
            ISNULL(tbProvince.Provincia, '') + N' ' +  
            ISNULL(tbRegioni.Regione, '') + N' ' +  
            ISNULL(tbStati.Stato, '')) AS IndirizzoDue
    
    FROM         
        TBNominativi LEFT OUTER JOIN
        tbCittà 
          ON TBNominativi.IDCittà1 = dbo.tbCittà.IDCittà AND
          TBNominativi.IDCittà2 = tbCittà.IDCittà LEFT OUTER JOIN
        tbProvince 
          ON TBNominativi.IDProvincia1 = tbProvince.IDProvincia AND 
          TBNominativi.IDProvincia2 = tbProvince.IDProvincia LEFT OUTER JOIN
        tbRegioni 
          ON TBNominativi.IDRegione1 = tbRegioni.IDRegione AND 
          TBNominativi.IDRegione2 = tbRegioni.IDRegione LEFT OUTER JOIN 
        tbStati 
          ON TBNominativi.IDStato1 = tbStati.IDStato AND 
          TBNominativi.IDStato2 = tbStati.IDStato
    
    WHERE TBNominativi.IDNominativo = 3
    aiutatemi voi... io non ci sto proprio capendo nulla...

    grazie a tutti per la disponibilità...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  2. #2
    prova ad aggiungere le parentesi tonde per ogni join effettuata
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  3. #3
    Originariamente inviato da Genius7115
    prova ad aggiungere le parentesi tonde per ogni join effettuata
    grazie genius.
    ho provato ad inserire le parentesi prima di ogni LEFT, era lì che intendevi? cmq, se era così non va bene, mi genera errore di sintassi.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    up... nessuno mi sa dare una mano eh?!...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Purtroppo bisognerebbe vedere il db... così nn è facile da capire, xkè sono diverse join... se vuoi e nn è troppo grosso puoi mandarmelo

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  6. #6
    Originariamente inviato da biste
    Purtroppo bisognerebbe vedere il db... così nn è facile da capire, xkè sono diverse join... se vuoi e nn è troppo grosso puoi mandarmelo

    HTH
    è un db di SQLServer ed è immenso, i campi che vedi scritti in quella istruzione sono solo quelli che mi danno problemi, ma ce ne sarebbero molti altri. non posso inviartelo, ma grazie lo stesso per l'interessamento...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

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