salve ragazzi
io ho questa stored procedure:
ALTER PROCEDURE [dbo].[GetPresenti]
(
@Codalbergo Int,
@CodComAlb Int,
@CodStato Varchar(3),
@CodComune Int
)
AS
DECLARE @arrivati Int,@partiti Int
BEGIN
SELECT @arrivati = SUM(ncomp)
FROM dbo.Archivio_mov
WHERE
Codalbergo = @Codalbergo
AND CodComAlb=@CodComAlb
AND codstato=@CodStato
AND codcomune=@Codcomune
AND Stato = 'A' OR Stato = '0'
SELECT @partiti = SUM(ncomp)
FROM dbo.Archivio_mov
WHERE
Codalbergo = @Codalbergo
AND CodComAlb=@CodComAlb
AND codstato=@CodStato
AND codcomune=@Codcomune
AND Stato = 'P' OR Stato='1'
if @partiti Is Null
select @partiti = 0
SELECT (@arrivati - @partiti) AS Ncomp
END
la quale mi funziona perfettamente per selezionare il numero totale di persone presenti in un albergo in base al codice stato e comune...
vi faccio capire meglio con un esempio:
ecco una serie di record presenti nella mia tabella:
codice albergo | codice comune dell'albergo| stato |codstato|Comune |Codcomune|nclienti |stato|
000000000001|0000000000001 |ITALIA |ITA |TERRACINA |032 | 11|A |
000000000001|0000000000001 |ITALIA |ITA |TERRACINA |032 | 03|P |
000000000001|0000000000001 |GERMANIA | | | 10|A |
in altre parole la stored mi esegue il controllo e mi dice come valore finale che ci sono presenti 8 persone ITALIANE di Terracina e 10 Tedeschi.
io ora avevo bisogno anche di prendere i loro rispettivi stati e comune
ossia avere come risultato finale oltre che ai valori totali delle presenze anche questo:
Stato |comune |nclienti|
ITALIA TERRACINA 08
GERMANIA 10
allora ho pensato di integrare la stored in questo modo:
ALTER PROCEDURE [dbo].[GetPresenti]
(
@Codalbergo Int,
@CodComAlb Int,
@CodStato Varchar(3),
@CodComune Int
)
AS
DECLARE @arrivati Int,@partiti Int
BEGIN
SELECT stato_res,comune,@arrivati = SUM(ncomp)
FROM dbo.Archivio_mov
WHERE
Codalbergo = @Codalbergo
AND CodComAlb=@CodComAlb
AND codstato=@CodStato
AND codcomune=@Codcomune
AND Stato = 'A' OR Stato = '0'
SELECT stato_res,comune,@partiti = SUM(ncomp)
FROM dbo.Archivio_mov
WHERE
Codalbergo = @Codalbergo
AND CodComAlb=@CodComAlb
AND codstato=@CodStato
AND codcomune=@Codcomune
AND Stato = 'P' OR Stato='1'
if @partiti Is Null
select @partiti = 0
SELECT (@arrivati - @partiti) AS Ncomp
END
ma mi ha generato il seguente errore:
Le istruzioni SELECT per l'assegnazione di valori alle variabili non devono essere eseguite insieme a operazioni di recupero dei dati.
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com