estoy haciendo una consulta a una bd de sql server..a un campo llamado PAYTYPE, en ese campo estoy buscando que me muestre todos los registro que tienen un numero 2, este campo esta separado por comas EJEMPLO (2 ;1;;;), al mismo tiempo en otro campo llamado PAYAMT me busca la primera cifra separada por comas correspondiente al mismo registro (20;-60;0;0;0 )
ejemplo:
paytype (2 ;1;;;)
Payamt (20;-60;0;0;0 )
Resultado: 20
El problema es cuando el No. 2 del campo PAYTYPE NO ESTA EN EL PRIMER REGISTRO
ejemplo:
paytype (1 ;2;;;)
Payamt (20;-60;0;0;0 )
EL RESULTADO TENDRIA QUE SER
Resultado: -60
pero sigo obteniendo el 20, es decir no se como recorrer la busqueda del campo dependiendo de la ubicacion del campo no 2...espero haberme explicado..anexo el codigo que tengo..el cual hace el primer ejemplo pero no me cumple con la segunda condicion...gracias por sus respuestas
SELECT distinct tnum,type,
substring(PAYAMT, 1, charindex(';', payamt)-1) payamt,
substring(payamt, charindex(';', payamt)+1, len(PAYAMT)) payamt
FROM sales2 WHERE (([PAYTYPE] LIKE '%' + '2' + '%')) AND ([IDATE] >= @idate) AND ([IDATE] <= @idate2)