
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Función if con dos condicionales
Buenas,
Tengo la sentencia de carga siguiente;
LOAD MovPosicion, Ejercicio, CodigoEmpresa, TipoMov, Asiento,
CargoAbono,
CodigoCuenta,
left ([CodigoCuenta],1) as GrupoContab,
Contrapartida, FechaAsiento,
TipoDocumento, DocumentoConta, Comentario, ImporteAsiento;
SQL SELECT *
FROM LogicClass.dbo.Movimientos;
Nesesitaria modificar el campo ImporteAsiento, con las siguientes condiciones:
Condicion: GrupoContab = '7' y CargoAbono = 'h'
si Verdadero: ImporteAsiento * -1
si Falso: ImporteAsiento
y además que este campo se llamase Importe.
He conseguido hacerlo con una condición,
if (left ([CodigoCuenta],1)= '7', ImporteAsiento * -1,ImporteAsiento) as Importe,
Pero no puedo cuando tengo dos condiciones y cuando utilizo un campo renombrado con 'as'
Un saludo
Accepted Solutions

.png)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hola,
Exacto, no puedes utilizar un campo calculado ya que aun no ha sido creado. Lo que puedes hacer es usar en si la formula o primero cargar la tabla, y luego referenciarla como LOAD * RESIDENT TABLE;
Usa el siguiente codigo para resolver tu problema:
LOAD MovPosicion, Ejercicio, CodigoEmpresa, TipoMov, Asiento,
CargoAbono,
CodigoCuenta,
left ([CodigoCuenta],1) as GrupoContab,
Contrapartida, FechaAsiento,
if (left ([CodigoCuenta],1)= '7' AND CargoAbono='h', ImporteAsiento * -1,ImporteAsiento) as Importe
TipoDocumento, DocumentoConta, Comentario, ImporteAsiento;
SQL SELECT *
FROM LogicClass.dbo.Movimientos;
Saludos!

.png)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hola,
Exacto, no puedes utilizar un campo calculado ya que aun no ha sido creado. Lo que puedes hacer es usar en si la formula o primero cargar la tabla, y luego referenciarla como LOAD * RESIDENT TABLE;
Usa el siguiente codigo para resolver tu problema:
LOAD MovPosicion, Ejercicio, CodigoEmpresa, TipoMov, Asiento,
CargoAbono,
CodigoCuenta,
left ([CodigoCuenta],1) as GrupoContab,
Contrapartida, FechaAsiento,
if (left ([CodigoCuenta],1)= '7' AND CargoAbono='h', ImporteAsiento * -1,ImporteAsiento) as Importe
TipoDocumento, DocumentoConta, Comentario, ImporteAsiento;
SQL SELECT *
FROM LogicClass.dbo.Movimientos;
Saludos!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Gracias por tu ayuda,
Ha funcionado correctamente
