Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda con While

Estas en el tema de Ayuda con While en el foro de SQL Server en Foros del Web. Tengo una tabla con un listado de nombres Necesito un script que mientras se cumpla la condicion de que se seleccione solo los nombres diferentes ...
  #1 (permalink)  
Antiguo 21/08/2009, 08:03
 
Fecha de Ingreso: abril-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Ayuda con While

Tengo una tabla con un listado de nombres
Necesito un script que mientras se cumpla la condicion de que se seleccione solo los nombres diferentes se ejecute un store procedure que se llama SP_Agentes el cual recibe como parametro cada uno de esos nombres de la tabla Agente
  #2 (permalink)  
Antiguo 21/08/2009, 08:10
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Ayuda con While

cual es el avance que tienes?



Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 21/08/2009, 08:38
 
Fecha de Ingreso: abril-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con While

TE refieres el dominio en sql,, pues Medio o a q te refieres con avance
  #4 (permalink)  
Antiguo 21/08/2009, 09:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con While

con el permiso, con el "avance", se refiere a que nos muestres el codigo que llevas.....
  #5 (permalink)  
Antiguo 21/08/2009, 10:24
 
Fecha de Ingreso: abril-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con While

Es q no tengo como avanzar pq no se como entrarle tengo esta condicion


While exists (select agentid from [Ext_AgentsRate])


entonces cuando se cumpla esa condicion q creo q esta correcta se debe ejecutar este store procedure con cada uno de los registros seleccionados

el sp es EXT_AGENT


ese sp recibe como parametrp cada uno los registros q se obtinen del while
  #6 (permalink)  
Antiguo 21/08/2009, 10:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con While

Para las buenas practicas del desarrollo, los PROCEDIMIENTOS ALMACENADOS, deben tener un nombre que los distinga, por ejemplo: usp_NameProcedure

Puedes hacer lo siguiente con query dinamico

SELECT 'EXEC EXT_AGENT ', TUSCOLUMNAS FROM TUTABLA

Lo que resulte, lo ejecutas
  #7 (permalink)  
Antiguo 21/08/2009, 11:01
 
Fecha de Ingreso: abril-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con While

Gracias eso genial pero la idea es para realizar un reporte no se si me explico porque el store procedure me envia el resultado a una tabla y quisiera q fuese mas automatizado No se si me podrias ayudar con eso o si necesitas algo mas
  #8 (permalink)  
Antiguo 21/08/2009, 11:23
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con While

Eso, necesitariamos conocer el PROCESO y ese solamente lo conoces tu.........
  #9 (permalink)  
Antiguo 21/08/2009, 11:38
 
Fecha de Ingreso: abril-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con While

mira el asunto es asi

tengo una tabla donde tengo un listado de agentes, es el store preocedure me da como resultado todos los subagentes o empleados q reportan al cada empleado principal.

y estoy generando un reporte para sacar los totales de las ventas de cada agente principal pero tomando en cuenta todos sus subagentes ,
ya tengo la parte del reporte q me saca todo los calculos pero me falta esta que es tomar cada agente y ejecutar el storeprocedure.

el store procedure lo q me saca es el agente y todos los subagentes que pertenecen a el ya q puede haber hasta 4 niveles de sub agentes .

La que deseo es ejecutar repetidamente el sp con cada un de los agentes de la tabla Agentes entonces ese es mi problema q no se como asignar para q se repita la accion


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[EXT_RepSubAgents]
@Par_AgentID char(50)
AS


SET NOCOUNT ON

declare @TMPAgent table(agentID varchar(50))

declare @subagent as varchar(50)

insert into @TMPAgent
select agentid From dbo.tbAgent
Where MasterAgentID = @Par_AgentID

while (select count(1) from @TMPAgent)>0
begin
select top 1 @subagent=agentid from @TMPAgent
---
insert into #tmpAgents values(@subagent)
---
delete @TMPAgent
where agentID=@subagent
----
insert into @TMPAgent
select agentid From dbo.tbAgent
Where MasterAgentID = @subagent
----
end


INSERT INTO #tmpAgents (AgentID) VALUES (@Par_AgentID)
  #10 (permalink)  
Antiguo 22/08/2009, 08:36
 
Fecha de Ingreso: abril-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con While

y lo que me falta es como enviar al store preocedure automaticamentees cada uno de los agentes de la primera tabla son aproximadamente 600 agentes
  #11 (permalink)  
Antiguo 24/08/2009, 14:49
 
Fecha de Ingreso: abril-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con While

Nadie tiene una idea de com ayudarme con esto?????
  #12 (permalink)  
Antiguo 24/08/2009, 19:03
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Ayuda con While

Para enviarle a tu sp la lista de los agentes principales puedes utilizar un campo texto con informacion en xml y de ahi pasarlos a una tabla temporal para continuar con el proceso..

Te anexo ejemplo..

Código:
DECLARE @XMLText varchar(8000)
DECLARE @idoc         INTEGER  


SET @XMLText = '<r><Agentes><AgenteId>Eleuterio</AgenteId></Agentes><Agentes><AgenteId>Venustiano</AgenteId></Agentes></r>'

If object_id('tempdb..#tmpAgentes') is not null drop table #tmpAgentes

CREATE table #tmpAgentes (AgenteId varchar(50))

--Create an internal representation of the XML document.  
EXECUTE sp_xml_preparedocument @idoc OUTPUT, @XMLText  


INSERT INTO #tmpAgentes (AgenteId)  
SELECT  AgenteId  
FROM   OPENXML (@idoc, '/r/Agentes',2)  
        WITH ([AgenteId]    varchar(50))  
  
  
EXEC sp_xml_removedocument @idoc  
  
SELECT * FROM #tmpAgentes


AgenteId                                           
-------------------------------------------------- 
Eleuterio
Venustiano
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #13 (permalink)  
Antiguo 25/08/2009, 08:01
 
Fecha de Ingreso: septiembre-2008
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Ayuda con While

prueba con esto

declare @rows int, @i int
declare @c1 tipo, @c2 tipo, ....
SELECT *, indentity(int,1,1) id into #lista FROM LISTA
set @rows = @@rowcount
set @i=1
while @i <= @rows
begin
select @c1 = c1, @c2 = c2, ....
from #lista where @id = @i
exec sp @c1, @c2,...
set @i = @i+1
end


Cita:
Iniciado por chicorio Ver Mensaje
Tengo una tabla con un listado de nombres
Necesito un script que mientras se cumpla la condicion de que se seleccione solo los nombres diferentes se ejecute un store procedure que se llama SP_Agentes el cual recibe como parametro cada uno de esos nombres de la tabla Agente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:33.