insert con select en sp

07/11/2008 - 13:22 por fff | Informe spam
Hola buenas, resulta que estoy empezando con las stored procedures y quiero
realizar una que me inserte datos a partir de una consulta (SELECT). Resulta
q la consulta agrupa unos datos filtrando por fecha.
No se que es lo que estoy haciendo mal pero llevo ya dias intentando
ejecutarlo sin exito, no da errores pero no inserta nada, supongo q sera por
el parámetro fecha q no lo trato bien.
Aqui os dejo el código y muchas gracias:

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[sp_Consums_dia]



@pData datetime = null

AS

BEGIN



SET NOCOUNT ON;


INSERT INTO consums_dia (Id, data, consum, totalitz)

SELECT dbo.Consums_lectures.ID, Consums_lectures_1.Data,

CASE Tags.Per10

WHEN 1 THEN

(dbo.Consums_lectures.Totalitz - Consums_lectures_1.Totalitz) * 10

ELSE

dbo.Consums_lectures.Totalitz - Consums_lectures_1.Totalitz

END AS Consum,

dbo.Consums_lectures.Totalitz

FROM dbo.Consums_lectures

INNER JOIN dbo.Consums_lectures AS Consums_lectures_1

ON dbo.Consums_lectures.ID = Consums_lectures_1.ID AND

dbo.Consums_lectures.Data = DATEADD(d, 1, Consums_lectures_1.Data)

INNER JOIN

dbo.Tags ON dbo.Consums_lectures.ID = dbo.Tags.ID

WHERE (DATEPART(hh, dbo.Consums_lectures.Data) = '00')

AND dbo.Consums_lectures.Data=@pdata

ORDER BY Consums_lectures_1.Data, dbo.Consums_lectures.ID


END


Saludos _______________________________________ Frederic Cabré Vicens Técnic
Superior en Desenvolupament d'Aplicacions Informàtiques fcv@fcvsolucions.com
_______________________________________ www.fcvsolucions.com

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
07/11/2008 - 13:54 | Informe spam
Si el parámetro contiene la hora es posible que en la parte del WHERE ya no
te devuelva nada.

Como parece que quieres filtrar los registros del día indicado, pero
únicamente de las 0h., yo le pasaría la fecha en formato 'yyyymmdd' (sin la
parte de la hora), y modificaría el filtro de este modo:

WHERE dbo.Consums_lectures.Data BETWEEN @pdata AND DATEADD(hh, 1, @pdata)

Un saludo
-
www.navento.com
Servicios de Localización GPS


"fff" wrote:

Hola buenas, resulta que estoy empezando con las stored procedures y quiero
realizar una que me inserte datos a partir de una consulta (SELECT). Resulta
q la consulta agrupa unos datos filtrando por fecha.
No se que es lo que estoy haciendo mal pero llevo ya dias intentando
ejecutarlo sin exito, no da errores pero no inserta nada, supongo q sera por
el parámetro fecha q no lo trato bien.
Aqui os dejo el código y muchas gracias:

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[sp_Consums_dia]



@pData datetime = null

AS

BEGIN



SET NOCOUNT ON;


INSERT INTO consums_dia (Id, data, consum, totalitz)

SELECT dbo.Consums_lectures.ID, Consums_lectures_1.Data,

CASE Tags.Per10

WHEN 1 THEN

(dbo.Consums_lectures.Totalitz - Consums_lectures_1.Totalitz) * 10

ELSE

dbo.Consums_lectures.Totalitz - Consums_lectures_1.Totalitz

END AS Consum,

dbo.Consums_lectures.Totalitz

FROM dbo.Consums_lectures

INNER JOIN dbo.Consums_lectures AS Consums_lectures_1

ON dbo.Consums_lectures.ID = Consums_lectures_1.ID AND

dbo.Consums_lectures.Data = DATEADD(d, 1, Consums_lectures_1.Data)

INNER JOIN

dbo.Tags ON dbo.Consums_lectures.ID = dbo.Tags.ID

WHERE (DATEPART(hh, dbo.Consums_lectures.Data) = '00')

AND dbo.Consums_lectures.Data=@pdata

ORDER BY Consums_lectures_1.Data, dbo.Consums_lectures.ID


END


Saludos _______________________________________ Frederic Cabré Vicens Técnic
Superior en Desenvolupament d'Aplicacions Informàtiques
_______________________________________ www.fcvsolucions.com



Respuesta Responder a este mensaje
#2 GuilleSQL
07/11/2008 - 14:07 | Informe spam
Por si te ayuda:

http://www.guillesql.es/Articulos/S...echas.aspx

Saludos,

GuilleSQL
http://www.guillesql.es


"fff" wrote:

Hola buenas, resulta que estoy empezando con las stored procedures y quiero
realizar una que me inserte datos a partir de una consulta (SELECT). Resulta
q la consulta agrupa unos datos filtrando por fecha.
No se que es lo que estoy haciendo mal pero llevo ya dias intentando
ejecutarlo sin exito, no da errores pero no inserta nada, supongo q sera por
el parámetro fecha q no lo trato bien.
Aqui os dejo el código y muchas gracias:

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[sp_Consums_dia]



@pData datetime = null

AS

BEGIN



SET NOCOUNT ON;


INSERT INTO consums_dia (Id, data, consum, totalitz)

SELECT dbo.Consums_lectures.ID, Consums_lectures_1.Data,

CASE Tags.Per10

WHEN 1 THEN

(dbo.Consums_lectures.Totalitz - Consums_lectures_1.Totalitz) * 10

ELSE

dbo.Consums_lectures.Totalitz - Consums_lectures_1.Totalitz

END AS Consum,

dbo.Consums_lectures.Totalitz

FROM dbo.Consums_lectures

INNER JOIN dbo.Consums_lectures AS Consums_lectures_1

ON dbo.Consums_lectures.ID = Consums_lectures_1.ID AND

dbo.Consums_lectures.Data = DATEADD(d, 1, Consums_lectures_1.Data)

INNER JOIN

dbo.Tags ON dbo.Consums_lectures.ID = dbo.Tags.ID

WHERE (DATEPART(hh, dbo.Consums_lectures.Data) = '00')

AND dbo.Consums_lectures.Data=@pdata

ORDER BY Consums_lectures_1.Data, dbo.Consums_lectures.ID


END


Saludos _______________________________________ Frederic Cabré Vicens Técnic
Superior en Desenvolupament d'Aplicacions Informàtiques
_______________________________________ www.fcvsolucions.com



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida