Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   existe la forma de "comparar" el valor de un campo con una cadena? (https://www.clubdelphi.com/foros/showthread.php?t=73145)

oscarac 03-04-2011 03:37:13

existe la forma de "comparar" el valor de un campo con una cadena?
 
buenas noches...h
Trabajo con Turbo Delphi y MS SQL SERVER

tengo el siguiente query

Código SQL [-]
select Left(M.cuenta, 2) As Cuenta, M.Libro, V.Vardel, P.Descripcion,  
SUM (Case when M.DH = 'D' or M.DH = '1' or M.DH = '+' or M.DH = 'I' then M.n_IMP else 0.00 End) AS HABER 
SUM (Case when M.DH = 'H' or M.DH = '2' or M.DH = '-' or M.DH = 'S' then M.n_IMP else 0.00 End) AS HABER 
from .....

la pregunta es la siguiente, se puede usar alguna funcion en la instruccion case when para reducir el tamanio de la consulta?
Código SQL [-]
 
select Left(M.cuenta, 2) As Cuenta, M.Libro, V.Vardel, P.Descripcion,  
SUM (Case when M.DH lo que sea que compare con 'D,1,+,I' then M.n_IMP else 0.00 End) AS HABER 
SUM (Case when M.DH lo que sea que compare con 'H,2,-,S' then M.n_IMP else 0.00 End) AS HABER 
from .....

se agradece la atencion

newtron 03-04-2011 10:17:56

Hola

Igual suelto una tontería porque no soy especialista en sql pero ¿no puedes usar la instrucción OCCURS?

WHEN (OCCURS('D1+I' IN UPPER(M.DH)) > 0)


Saludos

P.D.: ups, estoy pensando que igual tu base de datos no permite esa instrucción, pero igual si puedes hacerlo con POSITION.

oscarac 03-04-2011 10:23:38

gracias por la respuesta
pero despues de tantas pruebas y errores y tanto batallar lo solucione de la siguiente manera....
espero que a alguien mas le pueda servir

Código Delphi [-]
select Left(M.cuenta, 2) As Cuenta, M.Libro, V.Vardel, P.Descripcion,  
SUM (Case when M.DH in ('D','I','1','+') then M.n_IMP else 0.00 End) AS DEBE

y me funciona bien :eek::eek::eek::eek:


La franja horaria es GMT +2. Ahora son las 21:06:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi