>ho scritto così:
>
>ALTER PROCEDURE [dbo].[GetLastDate]
>(
>@CodAlb Int,
>@CodComAlb Int
>)
>AS
>BEGIN
>SELECT albergo.codalb,albergo.codcomune,MAX(Archivio_mov.data_elaborazione)As
>data
>FROM albergo
>JOIN archivio_mov
>ON albergo.codalb = archivio_mov.codalbergo
>AND albergo.codcomune = archivio_mov.codcomune
>WHERE albergo.codalb=@Codalb AND albergo.codcomune=@CodComAlb
>END
>
>ma mi esce il seguente messaggio di errore:
>
>Messaggio 8120, livello 16, stato 1, procedura GetLastDate, riga
>17
>La colonna 'albergo.Codalb' non è valida nell'elenco di selezione
>perché non è inclusa né in una funzione di aggregazione né nella
>clausola GROUP BY.
Come ti dice l'errore non indichi la funzione di aggregazione per il campo Codalb (anche per codcomune, ma il parser si ferma al primo).
Quindi, visto che sono identici per ogni riga grazie alla where, basta che aggiungi la GROUP BY alla fine comprendendo quei due campi:
ALTER PROCEDURE [dbo].[GetLastDate]
(
@CodAlb Int,
@CodComAlb Int
)
AS
BEGIN
SELECT
a.codalb
, a.codcomune
, data = MAX(m.data_elaborazione)
FROM
albergo a
JOIN archivio_mov m ON a.codalb = m.codalbergo AND a.codcomune = m.codcomune
WHERE
a.codalb = @Codalb AND a.codcomune=@CodComAlb
GROUP BY
a.codalb
, a.codcomune
END
Alx81 =)
http://blogs.dotnethell.it/suxstellino