SQL - contar y mantener el resultado en todos los registros

   
Vista:

contar y mantener el resultado en todos los registros

Publicado por Malow (19 intervenciones) el 29/02/2016 14:08:23
Hola buenas,

Quería comentarles una pregunta respecto a SQL Server. Necesito hacer una consulta en la que me cuente el número de registros diferentes de la columna de una tabla y me mantenga el valor. Les adjunto la consulta:

1
2
3
4
5
6
7
8
9
use libreria
Declare @ID nvarchar(50)set @ID = 111111
select	PEV.Id_Producto,
(select COUNT(DISTINCT(PEV.Tomo)) from Producto P where PEV.Id_ Producto = P.Id_ Producto) as Número_Tomos
From Producto P
		left join
		ProductosElementos PEV on PEV.Id_Producto = P.Id_Producto
Where		(PEV.Id_Producto = @ID)
GROUP BY	PEV.Id_Producto

Id_Producto / Número_Tomos
111111 /6

Este resultado es el correcto, sin embargo en la consulta necesito añadir nuevos registros con nuevos campos, y lo que me ocurre es lo siguiente:

1
2
3
4
5
6
7
8
9
10
use libreria
Declare @ID nvarchar(50)set @ID = 111111
select	PEV.Id_Producto,
(select COUNT(DISTINCT(PEV.Tomo)) from Producto P where PEV.Id_ Producto = P.Id_ Producto) as Número_Tomos
PEV.Cod_Registro
From Producto P
		left join
		ProductosElementos PEV on PEV.Id_Producto = P.Id_Producto
Where		(PEV.Id_Producto = @ID)
GROUP BY	PEV.Id_Producto, PEV.Cod_Registro

Id_Producto / Número_Tomos / Cod_Registro
111111/2/10001
111111/2/10002
111111/1/10003
111111/1/10004
111111/1/10005

Y lo que necesito es:

Id_Producto / Número_Tomos / Cod_Registro
111111/6/10001
111111/6/10002
111111/6/10003
111111/6/10004
111111/6/10005

Muchas gracias de antemano!!
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

contar y mantener el resultado en todos los registros

Publicado por Rafael (83 intervenciones) el 29/02/2016 14:22:31
Hola

tu error esta en que ligas la subconsulta a la tabla...

pruevba asi
1
2
3
4
5
6
7
8
9
10
use libreria
Declare @ID nvarchar(50)set @ID = 111111
select PEV.Id_Producto,
(select COUNT(DISTINCT(PEV.Tomo)) from Producto where Id_ Producto =  @ID) as Número_Tomos
PEV.Cod_Registro
From Producto P
left join
ProductosElementos PEV on PEV.Id_Producto = P.Id_Producto
Where (PEV.Id_Producto = @ID)
GROUP BY PEV.Id_Producto, PEV.Cod_Registro

Saludos


Pd. Si la informacion te sirve a mi me sirve un +1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

contar y mantener el resultado en todos los registros

Publicado por Malow (19 intervenciones) el 29/02/2016 15:36:25
Sigo obteniendo el mismo resultado Rafael, pero muchas gracias!
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