>Salve ragazzi,
>io sql ho creato una stored del genere:
>
>i dati che escono per me sono corretti ma vorrei fare una cosa
>del genere, con un codice sql e semmai utilizzando il group by
>è possibile raggruppare le righe per data_elaborazione,stato
>e codstato e nel campo ncomp ottenere la somma dei campi ncomp
>che fanno parte diel gruppo creato?
>
>esempio
>
>noi abbiamo i primi 5 record (vedi immagine) così:
>5 60006 2007-08-01 00:00:00 P 1 0
>5 60006 2007-08-01 00:00:00 P 1 0
>5 60006 2007-08-01 00:00:00 P 1 0
>5 60006 2007-08-01 00:00:00 A 1 0
>5 60006 2007-08-01 00:00:00 A 1 0
>
>io vorrei che uscisse così:
>
>5 60006 2007-08-01 00:00:00 P 3 0
>5 60006 2007-08-01 00:00:00 A 2 0
>
>
>si può fare e se si come?
Come hai detto tu
. Group by più una sum per sommare..
USE tempdb;
GO
CREATE TABLE TempArchivio_mov
(
IDAlbergo int identity(1,1),
CodAlbergo int NOT NULL,
Data_Elaborazione smalldatetime NOT NULL,
CodComAlb int NOT NULL,
Stato char(1) NOT NULL,
NComp smallint NOT NULL,
CodStato tinyint NOT NULL
)
GO
INSERT TempArchivio_mov (CodAlbergo, CodComAlb, Data_Elaborazione, Stato, NComp, CodStato)
SELECT 5, 60006, '20070801', 'P', 1, 0
INSERT TempArchivio_mov (CodAlbergo, CodComAlb, Data_Elaborazione, Stato, NComp, CodStato)
SELECT 5, 60006, '20070801', 'P', 1, 0
INSERT TempArchivio_mov (CodAlbergo, CodComAlb, Data_Elaborazione, Stato, NComp, CodStato)
SELECT 5, 60006, '20070801', 'P', 1, 0
INSERT TempArchivio_mov (CodAlbergo, CodComAlb, Data_Elaborazione, Stato, NComp, CodStato)
SELECT 5, 60006, '20070801', 'P', 1, 0
INSERT TempArchivio_mov (CodAlbergo, CodComAlb, Data_Elaborazione, Stato, NComp, CodStato)
SELECT 5, 60006, '20070801', 'P', 1, 0
INSERT TempArchivio_mov (CodAlbergo, CodComAlb, Data_Elaborazione, Stato, NComp, CodStato)
SELECT 5, 60006, '20070801', 'A', 1, 0
INSERT TempArchivio_mov (CodAlbergo, CodComAlb, Data_Elaborazione, Stato, NComp, CodStato)
SELECT 5, 60006, '20070801', 'A', 1, 0
GO
IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID('TempPrint_rilevazione'))
DROP PROCEDURE TempPrint_rilevazione
GO
CREATE PROCEDURE TempPrint_rilevazione
@Codalbergo Int,
@CodComAlb Int,
@DallaData smalldatetime,
@AllaData smalldatetime
AS
BEGIN
SET NOCOUNT ON;
SELECT
Codalbergo
, CodComAlb
, data_elaborazione
, stato
, ncomp = SUM(ncomp)
, codstato
FROM TempArchivio_mov
WHERE
codalbergo=@Codalbergo
And CodComAlb=@CodComAlb
And data_elaborazione BETWEEN @DallaData AND @AllaData
GROUP BY
Codalbergo
, CodComAlb
, data_elaborazione
, stato
, codstato
ORDER BY data_elaborazione
END
GO
EXEC TempPrint_rilevazione 5, 60006, '20070801', '20070801'
GO
-- pulizia
DROP PROCEDURE TempPrint_rilevazione
DROP TABLE TempArchivio_mov
GO
>
>Ciao e grazie
di nulla! 
Alx81 =)
http://blogs.dotnethell.it/suxstellino