SQL Server - Utilización de Month sobre una variable

   
Vista:

Utilización de Month sobre una variable

Publicado por Rodrigo Pérez (2 intervenciones) el 17/08/2015 20:53:27
Buenas amigos tengo un pequeño problema
He intentado declarar una Variable sobre un Function, que sea una columna de fecha, y de esta fecha solo me interesa el mes para filtrar algunas ganancias, así que lo intente mas o menos así...

declare @fecha date
declare @mes int
set @fecha =(select fecha from TVentas)
set @mes = month,(@fecha)

lo he intentado de varias maneras dentro y fuera del Fuction y me da el error del subquery (Subquery returned more than 1 value..etc) lo he intentado con un Datepart también tampoco funciona.

Agradecería su respuesta rápida ya que es con el propósito de un trabajo en la Universidad
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Utilización de Month sobre una variable

Publicado por Isaias (3180 intervenciones) el 17/08/2015 21:12:36
El problema esta aquí

select fecha from TVentas

Ese SELECT te devuelve mas de un registro, que quieres asignar a una variable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Utilización de Month sobre una variable

Publicado por Rodrigo Pérez (2 intervenciones) el 17/08/2015 23:51:48
Si tienes razon que descuidado
Y como solucionarias el error, así esta la Funcion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
returns money
as
	begin
		declare @fecha date
		declare @mes int
		declare @salida money
		set @fecha =(select fecha from TVentas)
		set @mes = month(@fecha)
		set @salida = (select sum(subtotal)from TDetalle,TVentas
		where TVentas.NumFactura = TDetalle.NumFactura
		and Fecha = @fecha
		group by CodProducto)
		return @salida
	end
go

se supone que dando un mes en especifico me debe da la suma de todas las ventas del mes.

select dbo.F_VentasenMes(8)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Utilización de Month sobre una variable

Publicado por Rafael (88 intervenciones) el 18/08/2015 12:54:39
A ver si el procedimiento ya recibe como parametro el MES, pues lo que tienes que hacer es igualarlo en el WHERE algo como:

1
and month(Fecha) = @mes

Por otro lado para que haces el GROUP BY ??? si no vas a presentar mas que un dato???

El cuerpo de la funcion quedaria algo asi, o bueno al menos eso creo yo...
1
2
3
4
5
6
7
8
9
10
11
12
13
returns money
as
	begin
		declare @salida money
 
		set @salida = (select sum(subtotal)
                       from TDetalle,TVentas
                       where  TVentas.NumFactura = TDetalle.NumFactura
                       and month(Fecha) = @mes )
		return @salida
	end
 
go
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar