Store Procuedure

lunedì 05 febbraio 2007 - 11.57

melmar20 Profilo | Junior Member

Ciao a tutti sto utilizzando un Db di tipo Microsoft SQL Server 2005 ho scritto la seguente Store Procedure ma purtroppo mi segnala un errore son sicuro sia sintattico:

riporto qui il codice della Store:


create procedure {databaseOwner}{objectQualifier}YourCompany_GetAllIndirizzi

@NomeCampagna nvarchar(50)

as

Select Referente.Email
(select AssCategCamp.Categoria
from AssCategCamp
where Campagna=@NomeCampagna) As AllCategorie
From AllCategorie JOIN AssCatRef JOIN Referente
where (AllCategorie.Categoria=AssCatRef.NomeCat AND AssCatRef.CF=Referente.CodFiscale)

GO

sapreste dirmi dove in cosa sbaglio?
Grazie Ciaoooooo

lbenaglia Profilo | Guru

>riporto qui il codice della Store:
>
>
>create procedure {databaseOwner}{objectQualifier}YourCompany_GetAllIndirizzi

Ciao melmar20,

si tratta di un esempio, vero?
In realtà non stai usando le graffe nella definizione della procedura?

> From AllCategorie JOIN AssCatRef JOIN Referente
>where (AllCategorie.Categoria=AssCatRef.NomeCat AND AssCatRef.CF=Referente.CodFiscale)

L'operatore di INNER JOIN richiede di specificare la clausola ON.
Nel tuo caso stai inserendo le clausole di JOIN nella clausola WHERE.
Prova a riscrivere la query come:

FROM dbo.AllCategorie AS AC JOIN dbo.AssCatRef AS ACR ON AC.Categoria = ACR.NomeCat JOIN dbo.Referente AS R ON ACR.CF = R.CodFiscale

>Grazie Ciaoooooo
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

melmar20 Profilo | Junior Member

ho provato a sostituire il codice ma mi segnala comunque un errore....credo sia sul secondo Select

il mio intento è quello di creare una nuova Tabella chiamata AllCategorie partendo dai dati che mi vengono restituiti dalla seconda select per fare questo ho utilizzato la parola chiave As,non sò se questo si possa fare

lbenaglia Profilo | Guru

>ho provato a sostituire il codice ma mi segnala comunque un errore....credo
>sia sul secondo Select
Posta i comandi DDL di tutte le tabelle (CRATE TABLE), alcune righe di prova (INSERT INTO) ed il risultato finale che vuoi ottenere.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

melmar20 Profilo | Junior Member

una Domanda:

è possibile fare un Join con una nuova tabella, non presente fisicamente nel DB ma creata da un comando di tipo Select. Mi spiego meglio:

Select Referente.Email

/***Con questa seconda Select creo una nuova tabella "immaginaria" cioè non presente nel Database ***/

(select AssCategCamp.Categoria
from AssCategCamp
where Campagna=@NomeCampagna) As AllCategorie

/***e poi la utilizzo per fare il JOIN con altre tabelle presenti fisicamente nel Db ****/

FROM dbo.AllCategorie AS AC
JOIN dbo.AssCatRef AS ACR
ON AC.Categoria = ACR.NomeCat
JOIN dbo.Referente AS R
ON ACR.CF = R.CodFiscale

lbenaglia Profilo | Guru

>è possibile fare un Join con una nuova tabella, non presente
>fisicamente nel DB ma creata da un comando di tipo Select.
No.

Se desideri risolvere il problema, posta le info che ti ho chiesto.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

melmar20 Profilo | Junior Member

ok ti ringrazio....

non ho settato ciò che mi hai suggerito nel post precedente perchè non ho ben compreso cosa dovrei fare....

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5