by jacgsoft » Thu Jun 15, 2023 8:40 pm
Con el WHERE IN, no es posible, debido a que la lista de codigos es variable. En SQL SERVER si he podido hacerlo, con sentencia SQL dinámicas.
Otra opción sería NO usar Store Procedure, sino, una sentencia select.
** Códigos Alfanuméricos
cCadena:="'001','002','003','004'"
Text In _Sql_
SELECT c.cantidad,c.no_sirve,c.identificacion AS identifi,c.id_comprobante,c.fecha_movimiento,c.id,c.id_articulo,c1.tipo AS t1,0 AS t2,c3.tipo AS t3,0 AS t4,c.comprobante,c.id_unidad_medida
FROM comprobantes_cuerpo AS c
LEFT JOIN comprobantes_compras AS c1 ON c.identificacion='C' and c1.id=c.id_comprobante
LEFT JOIN comprobantes_ventas AS c3 ON c.identificacion='V' and c3.id=c.id_comprobante
WHERE c.id_empresa=BDempresa and c.codigo in (cCadena)
ORDER BY c.fecha_movimiento,c.id
EndText
_Sql_:=StrTran(_Sql_,'cCadena',cCadena)
*************************************
** Códigos numéricos
nCadena:="001,002,003,004"
Text In _Sql_
SELECT c.cantidad,c.no_sirve,c.identificacion AS identifi,c.id_comprobante,c.fecha_movimiento,c.id,c.id_articulo,c1.tipo AS t1,0 AS t2,c3.tipo AS t3,0 AS t4,c.comprobante,c.id_unidad_medida
FROM comprobantes_cuerpo AS c
LEFT JOIN comprobantes_compras AS c1 ON c.identificacion='C' and c1.id=c.id_comprobante
LEFT JOIN comprobantes_ventas AS c3 ON c.identificacion='V' and c3.id=c.id_comprobante
WHERE c.id_empresa=BDempresa and c.codigo in (nCadena)
ORDER BY c.fecha_movimiento,c.id
EndText
_Sql_:=StrTran(_Sql_,'nCadena',nCadena)
***************************