inicialmente lo que busco es almacenar en una temporal todas las referencias que me cumplan con la condicion! ....
para insertar esas referencias en la tabla temporal debo tener los condicionales que son variables por eso paso toda la consulta por que es formada fuera de sql.. por que no logre como formar ese condicional compuesto (id_zona =15 OR id_zona =16 OR id_zona =17 OR id_zona =18
OR id_zona =19 OR id_zona =20 OR id_zona =21 OR id_zona =22) al igual que el IdNodo puede ser variable...
una vez creada mi tabla temporal debo recorrerla y ese es el problema...
la temporal si es creada pero no se como recorrerla y sacar referencia a referencia ya que necesito llenar otra temporal donde almacena las cantidades finales del inventario al final de cada periodo (cabe aclarar que una referencia no se puedo mover en N dia mientras que otra si se movio ese dia por eso la necesidad de buscar referencia referencia)por periodos de x referencia! recorriendo entre fechas
como haria para que en el siguiente codigo la variable @referencia me tome la referencia de la temporal por que el ciclo ya lo tengo o eso creo!
Código:
mas o menos el codigo de arriba seria el ciclo... ahora bien con el codigo siguiente intento por lo menos tomar una referencia de la temporal y me bota el error que esta al final de todo!while @@rowcount <> 0--que existan filas mientras tomo las demas referencias begin--** set rowcount 0
Código:
el mensaje es el siguiente... como pueden ver las filas de la temporal si se afectan... e dice que afecto a 9 refencias! y eso es correcto--drop table #Temp_Referencias declare @sql nvarchar (2000) declare @sqlReferencia nvarchar(2000) declare @referencia varchar(11)--alomacena cada una de las referencias de los productos en cada pasada! DECLARE @ParmetroDefinition nvarchar(500) set @sql ='select distinct(referencia)into #Temp_Referencias from TBL_INV_ITEM where idNodo=19 OR idNodo =20 and Referencia in (select distinct(Referencia) from TBL_INV_RemFact_Pedidos where NroPedido in (select NroPedido from TBL_VYD_DetallesP where id_zona =15 OR id_zona =16 OR id_zona =17 OR id_zona =18 OR id_zona =19 OR id_zona =20 OR id_zona =21 OR id_zona =22) and Referencia in (select distinct(Referencia) from TBL_INV_ITEM where idTipo =7))' EXECUTE sp_executesql @sql set rowcount 1--indico primera fila! set @sql =N'select @subReferencia_OUT = Referencia from #Temp_Referencias'; set @ParmetroDefinition=N'@subReferencia_OUT varchar(11) OUTPUT'; EXECUTE sp_executesql @sql,@ParmetroDefinition,@subreferencia_OUT=@Referencia OUTPUT; select @referencia
Código:
pienso por que ejecuto la temporal de la forma! EXECUTE sp_executesql @sql pero debo hacerlo asi ya que el condicional es variable y es formado fuera de SQL y es pasado como un parametro!(9 filas afectadas) Mens. 208, Nivel 16, Estado 0, Línea 1 El nombre de objeto '#Temp_Referencias' no es válido.
espero me ayuden y gracias de antemano!