Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
"Dichiarare la variabile scalare"
giovedì 04 ottobre 2007 - 11.55
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Cikka
Profilo
| Newbie
3
messaggi | Data Invio:
gio 4 ott 2007 - 11:55
Salve a tutti,
premetto che non sono un'esperta di SQL server 2005 per cui mi scuso se non sono chiara o se "non so quello che dico"...
sto creando una vista (per capirci tasto destro su crea nuova vista) e nel suo interno ho la necessità di passare una parametro @evento
cos'ì come è fatta la vista in esecuzione mi chiede il parametro che gli passo e mi da il risultato voluto ma se voglio salvarla mi dice di dichiarare la variabile scalare, se provo ad oggiungere la dichiarazione (BEGIN DECLARE @evento AS numeric(18, 0) in esecuzione è tutto ok ma quando salvo mi da errore di sintassi. di seguito posto il codice .
grazie a tutti
SELECT dbo.Clienti.Codice, dbo.Clienti.ragionesociale, dbo.Contatti.cognome, dbo.Contatti.nome, dbo.Contatti.Codice AS codcont
FROM dbo.Clienti INNER JOIN
dbo.Contatti ON dbo.Clienti.Codice = dbo.Contatti.cliente
WHERE (NOT (dbo.Contatti.Codice IN
(SELECT contatto
FROM dbo.AziendeEventi
WHERE (evento = @evento))))
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 4 ott 2007 - 13:09
>sto creando una vista (per capirci tasto destro su crea nuova
>vista) e nel suo interno ho la necessità di passare una parametro
>@evento
Ciao Cikka,
Le viste per definizione non accettano parametri di I/O.
Al loro posto puoi definire una User-Defined Function Inline Table-valued:
"CREATE FUNCTION (Transact-SQL)"
http://msdn2.microsoft.com/en-us/library/ms186755.aspx
Purtroppo non riesco a prepararti un esempio che si cala sulla tua realtà perché non ho capito bene la struttura delle tabelle
Quella NOT IN può sicuramente essere scritta in modo più efficiente....
>grazie a tutti
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Cikka
Profilo
| Newbie
3
messaggi | Data Invio:
gio 4 ott 2007 - 14:04
Grazie..
adesso cerco di spiegarti qual è il mio problema di fondo..
ho bisgono di fare una query un po' complessa o forse solo un po' incasinata e non ne riesco a venire fuori
in sostanza quello che voglio vedere è un'elenco delle aziende, i suoi contatti, e se il suo contatto è stato già associato
all'evento X che gli passo come parametro , averne traccia in modo tale da non riassociarlo di nuovo
(quando lo associo inserisco una riga in una tabella aziendaeventi)
le tabelle sono
clienti che contiene l'anagrafica (codice, ragionesociale,indirizzo,cap, città,etc..)
i referenti dell'azienda:contatti(codice, nome,cognome,etc...)
una serie di eventi collegati sia all'azienda che ai contatti: aziendaEventi(codice,evento,cliente,contatto)
ogni azienda puo' avere più contatti e ogni contatto può partecipare a più eventi.
sto usando ASP.net il linguaggio che uso è VB di solito quando ho bisogno di fare delle query me la cavo direttamente dal lato client ma
vedendo la complessità della query, ho cercato di ovviare il mio problema direttamente dal lato server sul db,
ho letto qualcosina sulle viste e pensavo di delegare il lavoro direttamente a loro ma non essendo molto pratica ho trovato delle difficoltà
Spero di essere stata chiara a spigarti il mio problema
Grazie ancora.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 4 ott 2007 - 14:25
>le tabelle sono
>
>clienti che contiene l'anagrafica (codice, ragionesociale,indirizzo,cap,
>città,etc..)
>i referenti dell'azienda:contatti(codice, nome,cognome,etc...)
>una serie di eventi collegati sia all'azienda che ai contatti:
>aziendaEventi(codice,evento,cliente,contatto)
Mi spiace ma non capisco le relazioni tra le tabelle. Non potresti postare i comandi di CREATE TABLE (comprensivi di constraints), alcune righe di prova (INSERT INTO) ed il result set finale che vorresti ottenere?
>Grazie ancora.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
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 !