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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Utilización de Month sobre una variable

Publicado por Isaias (4558 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
sin imagen de perfil
Val: 86
Ha disminuido su posición en 2 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Utilización de Month sobre una variable

Publicado por Rafael (110 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