Sentencia SQL con un CASE que no funciona
A quien me pueda echar una mano.
Tengo un Datagridview que relleno a través de un DataSet con los datos que obtengo de una base de datos access a través de una consulta SQL.
Uno de los campos es un boolean, que muestra si una factura de un cliente está pagada o no. El caso es que el DatagridView muestra "TRUE" o "FALSE", pero yo quiero, claro está, que muestre "SI" o "NO".
Para ello, en la consulta que realizo a la base de datos he metido un CASE y la he construido de la siguiente manera:
Dim sql As String = "SELECT facturaCliente.facturaId,facturaCliente.Numero,cliente.Nombre AS Cliente," &
"facturaCliente.Fecha, facturaCliente.Importe," &
"CASE WHEN facturaCliente.Pagada = 1 THEN 'Si' ELSE 'No' END,facturaCliente.FechaPago AS Fecha Cobro," &
"facturaCliente.FechaDia AS Fecha Hoja " &
"FROM cliente INNER JOIN facturaCliente ON cliente.clienteId=facturaCliente.Cliente " &
"WHERE Year(facturaCliente.Fecha) =" & año &
" ORDER BY facturaCliente.facturaId;"
Al ejecutar la consulta me sale una excepción:
Error de IErrorInfo.GetDescription con E_FAIL(0x80004005).
Pero he repasado la query un montón de veces y no encuentro el error.
Tengo que decir que si quito el CASE, la query funciona perfectamente.
Gracias de antemano.
JDavila
Tengo un Datagridview que relleno a través de un DataSet con los datos que obtengo de una base de datos access a través de una consulta SQL.
Uno de los campos es un boolean, que muestra si una factura de un cliente está pagada o no. El caso es que el DatagridView muestra "TRUE" o "FALSE", pero yo quiero, claro está, que muestre "SI" o "NO".
Para ello, en la consulta que realizo a la base de datos he metido un CASE y la he construido de la siguiente manera:
Dim sql As String = "SELECT facturaCliente.facturaId,facturaCliente.Numero,cliente.Nombre AS Cliente," &
"facturaCliente.Fecha, facturaCliente.Importe," &
"CASE WHEN facturaCliente.Pagada = 1 THEN 'Si' ELSE 'No' END,facturaCliente.FechaPago AS Fecha Cobro," &
"facturaCliente.FechaDia AS Fecha Hoja " &
"FROM cliente INNER JOIN facturaCliente ON cliente.clienteId=facturaCliente.Cliente " &
"WHERE Year(facturaCliente.Fecha) =" & año &
" ORDER BY facturaCliente.facturaId;"
Al ejecutar la consulta me sale una excepción:
Error de IErrorInfo.GetDescription con E_FAIL(0x80004005).
Pero he repasado la query un montón de veces y no encuentro el error.
Tengo que decir que si quito el CASE, la query funciona perfectamente.
Gracias de antemano.
JDavila
1 Respuesta
Respuesta de sherite
1