Case: No puedo utilizar mas de 10 condiciones
Publicado por Ana Pérez (6 intervenciones) el 25/07/2014 13:16:04
Hola chic@s:
A ver me podeis ayudar, necesito almacenar en un campo el nombre del banco, para luego poder agrupar. La información la tengo en un campo llamado PymMethNam. Habia pensado utilizar la función case tal y como pongo en el ejemplo adjunto. El problema es que si tengo más de 10 condiciones como es el caso de una de las base de datos que tengo que tratar, la función no me lo permite. Mi pregunta es que otra función puedo utilizar que no me limite la condición o de que otra forma puedo montar la consulta. Muchas gracias por anticipado. Saludos
select 'BF' AS EMPRESA, PmntDate as FechaContable, DueDate as Vto, BoeNum as Número, BoeStatus as Status ,BoeSum as Importe, CardCode as Código, CardName as Nombre,
CASE WHEN PymMethNam = 'PAGO CONFIRMING BANKINTER FRANCIA' THEN SUBSTRING(PymMethNam, 16, 10)
else CASE When PymMethNam = 'PAGO CONFIRMING BBVA FRANCIA' THEN SUBSTRING(PymMethNam, 16, 5)
else CASE When PymMethNam = 'PAGO CONFIRMING SANTANDER FRANCIA' THEN SUBSTRING(PymMethNam, 16, 11)
else CASE When PymMethNam = 'PAGO PAGARE BBVA FRANCIA' THEN SUBSTRING(PymMethNam, 12, 4)
else CASE When PymMethNam = 'PAGO PAGARE BANKINTER FRANCIA' THEN SUBSTRING(PymMethNam, 12, 10)
else CASE When PymMethNam = 'PAGO PAGARE SANTANDER FRANCIA' THEN SUBSTRING(PymMethNam, 12, 10)
else CASE when PymMethNam = 'PAGO CONFIRMING CAIXA' then (SUBSTRING(PymMethNam, 16, 6) + 'BG')
else CASE When PymMethNam = 'PAGO CONFIRMING SANTANDER' THEN (SUBSTRING(PymMethNam, 16, 10) + 'BG')
else CASE When PymMethNam = 'PAGO PAGARE CAIXA' THEN (SUBSTRING(PymMethNam, 12, 6) + 'BG') END END END END END END END END END as BANCO, PymMethNam
from SBO_PRUEBATFR.dbo.OBOE
A ver me podeis ayudar, necesito almacenar en un campo el nombre del banco, para luego poder agrupar. La información la tengo en un campo llamado PymMethNam. Habia pensado utilizar la función case tal y como pongo en el ejemplo adjunto. El problema es que si tengo más de 10 condiciones como es el caso de una de las base de datos que tengo que tratar, la función no me lo permite. Mi pregunta es que otra función puedo utilizar que no me limite la condición o de que otra forma puedo montar la consulta. Muchas gracias por anticipado. Saludos
select 'BF' AS EMPRESA, PmntDate as FechaContable, DueDate as Vto, BoeNum as Número, BoeStatus as Status ,BoeSum as Importe, CardCode as Código, CardName as Nombre,
CASE WHEN PymMethNam = 'PAGO CONFIRMING BANKINTER FRANCIA' THEN SUBSTRING(PymMethNam, 16, 10)
else CASE When PymMethNam = 'PAGO CONFIRMING BBVA FRANCIA' THEN SUBSTRING(PymMethNam, 16, 5)
else CASE When PymMethNam = 'PAGO CONFIRMING SANTANDER FRANCIA' THEN SUBSTRING(PymMethNam, 16, 11)
else CASE When PymMethNam = 'PAGO PAGARE BBVA FRANCIA' THEN SUBSTRING(PymMethNam, 12, 4)
else CASE When PymMethNam = 'PAGO PAGARE BANKINTER FRANCIA' THEN SUBSTRING(PymMethNam, 12, 10)
else CASE When PymMethNam = 'PAGO PAGARE SANTANDER FRANCIA' THEN SUBSTRING(PymMethNam, 12, 10)
else CASE when PymMethNam = 'PAGO CONFIRMING CAIXA' then (SUBSTRING(PymMethNam, 16, 6) + 'BG')
else CASE When PymMethNam = 'PAGO CONFIRMING SANTANDER' THEN (SUBSTRING(PymMethNam, 16, 10) + 'BG')
else CASE When PymMethNam = 'PAGO PAGARE CAIXA' THEN (SUBSTRING(PymMethNam, 12, 6) + 'BG') END END END END END END END END END as BANCO, PymMethNam
from SBO_PRUEBATFR.dbo.OBOE
Valora esta pregunta


0