SQL - Prcedimiento almacenado no me muestra una sucursal

 
Vista:

Prcedimiento almacenado no me muestra una sucursal

Publicado por Maya (1 intervención) el 10/01/2017 20:17:52
Hola amigos me pueden apoyar con esta consulta ya que hice un SP pero solamente me muestra calculos de una sola sucursal y no de las 2 que tengo en la tabla de sucursales, le mando esta consulta:

1
2
USE NegocioDB
Exec ssp_consulta_asiga_meta 'Matriz Tonaya'


y aqui esta el codigo, no encuentre donde pueda estar el error, cuando consulto las otras dos sucursales me trae datos null o en ceros.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
USE NegocioDB
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Maya>
-- Create date: <09/01/2017>
-- Description:	<xxxxx>
-- =============================================
ALTER PROCEDURE [dbo].[ssp_consulta_asiga_meta]
	-- Add the parameters for the stored procedure here
 
	@sucursal varchar(50)
 
 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    -- Insert statements for procedure here
 
--Va de Nuez de todos los calculos que mostramos
--cuales se ocupan para mostrar al final???
 
declare @tableresult table
(
numsocios int,
porcsuc1 int,
TotalAhorro int,
PorcAho1 decimal(10,2),
capta1 decimal(10,2),
totalcartera int,
Porcart1 decimal (10,2),
colocacredi1 decimal (10,2),
totalcaptarsocios decimal (10,2),
totalcaptarahorro decimal(10,2),
totalcolocarcredito decimal(10,2),
captasocio1 int
 
)
 
--Declara totales
Declare @totalsocios int
Declare @totalahorro int
Declare @totalCartera int
 
Declare @totalcaptarsocios int
Declare @totalcaptarahorro int
Declare @totalcolocarcredito decimal(10,2)--int aqui esta el error un valor diferente al resultado
 
--Declaras los porcentajes
Declare @porcsuc1 decimal(10,2)
Declare @PorcAho1 decimal(10,2)
Declare @porcart1 decimal(10,2)
 
Declare @captasocio1 int
Declare @capta1 decimal(10,2)
Declare @colocacredi1 decimal (10,2)
 
 
Declare @IDSucursal int
 
Set @IDSucursal=(Select SucursalId from Sucursales Where NombreSuc=@sucursal and Vigente=1)
 
 
--Sacar valores totales
SET @totalsocios=(SELECT sum(Totalsocios) FROM [Sucursales.Totales] where Id_Sucursal=@IDSucursal)
SET @totalahorro=(SELECT sum(TotalAhorro) FROM [Sucursales.Totales] where Id_Sucursal=@IDSucursal)
SET @totalCartera=(SELECT sum(TotalCartera) FROM [Sucursales.Totales] where Id_Sucursal=@IDSucursal)
 
 
--SET datos de tabla costos y beneficios
SET @totalcaptarsocios = (SELECT CaptarNuevoSocios FROM Costos where SucursalID= @IDSucursal)
SET @totalcaptarahorro = (SELECT CaptarAhorro FROM Costos where SucursalID= @IDSucursal)
SET @totalcolocarcredito = (SELECT ColocarCredito FROM Beneficios where SucursalID= @IDSucursal)
 
--Operaciones de % Socios
SET @porcsuc1=((Select Totalsocios from [Sucursales.Totales] where Id_Sucursal=@IDSucursal))
 
SET @porcsuc1=(@porcsuc1/@totalsocios*100)
 
 
--Operaciones % Ahorro
 
SET @PorcAho1=((Select TotalAhorro from [Sucursales.Totales] where Id_Sucursal=@IDSucursal))
 
SET @PorcAho1=(@PorcAho1/@totalahorro*100)
 
 
-- Operaciones %credito
 
SET @Porcart1 =((Select TotalCartera from [Sucursales.Totales] where Id_Sucursal=@IDSucursal))
 
SET @Porcart1=(@Porcart1/@TotalCartera*100)
 
--operaciones de META SOCIO
SET @captasocio1=(@totalcaptarsocios *@porcsuc1)
 
 
--Operaciones de META AHORRO
 
SET @capta1=(@totalcaptarahorro *@PorcAho1)
 
 
--operaciones de META CREDITO
 
 
SET @colocacredi1 =(@totalcolocarcredito * @porcart1/100)
 
 
INSERT INTO @tableresult (numsocios,porcsuc1,TotalAhorro,PorcAho1,totalCartera, porcart1, captasocio1, capta1,colocacredi1)--estos son los que te falta declarar
				values(@totalsocios,@porcsuc1,@totalahorro,@PorcAho1,@totalCartera,@porcart1,@captasocio1,  @capta1,  @colocacredi1)
 
 
-- de todos esos campos que hicimos CUALES SON LOS QUE OCUPAMOS POR SUCURSAL 1 X 1 captasocio, capta y colocacred
 
SELECT ISNULL (captasocio1/100,0) as MetaSocio, ISNULL(capta1,0) as MetaAhorro, ISNULL(colocacredi1,0) as MetaCredito
 
FROM @tableresult
 
 
END
GO
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: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Prcedimiento almacenado no me muestra una sucursal

Publicado por Isaias (1921 intervenciones) el 10/01/2017 22:42:03
Maya, no se que tanta experiencia tengas con SQL (tampoco dices que motor estas ocupando), pero parece que no mucha.

¿Porque solo me saca los datos de UNA sucursal?

Simple, porque solo estas procesando UNA sucursal

1
Set @IDSucursal=(Select SucursalId from Sucursales Where NombreSuc=@sucursal and Vigente=1)

No entiendo para que haces tantos SET

Esta instruccion, de TRES LECTURAS

1
2
3
SET @totalsocios=(SELECT sum(Totalsocios) FROM [Sucursales.Totales] where Id_Sucursal=@IDSucursal)
SET @totalahorro=(SELECT sum(TotalAhorro) FROM [Sucursales.Totales] where Id_Sucursal=@IDSucursal)
SET @totalCartera=(SELECT sum(TotalCartera) FROM [Sucursales.Totales] where Id_Sucursal=@IDSucursal)

Se puede hacer con UNA SOLA LECTURA

1
2
3
4
5
SELECT @totalsocios = sum(Totalsocios)
, @totalahorro = sum(TotalAhorro)
, @totalCartera = sum(TotalCartera)
FROM [Sucursales.Totales]
where Id_Sucursal=@IDSucursal)
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