Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2008
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Correccion de Sintaxis

Buenas tardes, la verdad es que no genera ningun resultado, estoy utilizando D7 y Firebird 1.5, que podria estar escribiendo mal>



Código SQL [-]update facturacion set monto_iva=(cloaca*alicuota_iva)/100 where (tipo_factura='Consumo') and (Tipo_tarifa='Residencial' or tipo_tarifa='Especial' or tipo_tarifa='Gobierno') and (cloaca<>0) and (alicuota_iva<>0);
update facturacion set sub_total=consumo_agua+cloaca where (tipo_factura='Consumo') and (tipo_tarifa='Residencial' or tipo_tarifa='Especial');*/
update facturacion set (consumo_agua+cloaca+cargo_variable+cargo_fijo+cargo_exceso_consumo) where (tipo_factura='Consumo') and (tipo_tarifa='Comercial') into sub_total;
update facturacion set sub_total=consumo_agua+cloaca+cargo_variable+cargo_fijo+cargo_exceso_consumo where (tipo_factura='Consumo') and (tipo_tarifa='Industrial A');
update facturacion set sub_total=consumo_agua+cloaca+cargo_variable+cargo_fijo+cargo_exceso_consumo where (tipo_factura='Consumo') and (tipo_tarifa='Industrial B');
update facturacion set monto_iva=(sub_total*alicuota_iva)/100 where (tipo_factura='Consumo') and (Tipo_tarifa='Comercial') and (alicuota_iva<>0);
update facturacion set monto_iva=(sub_total*alicuota_iva)/100 where (tipo_factura='Consumo') and (tipo_tarifa='Industrial A') and (alicuota_iva<>0);
update facturacion set monto_iva=(sub_total*alicuota_iva)/100 where (tipo_factura='Consumo') and (tipo_tarifa='Industrial B') and (alicuota_iva<>0);
Responder Con Cita
  #2  
Antiguo 28-10-2008
Avatar de boreg
boreg boreg is offline
Miembro
 
Registrado: oct 2007
Ubicación: México, México
Posts: 76
Poder: 17
boreg Va por buen camino
Prueba quitando el "*/" de la quinta linea e indicando que campo actualizarás en la 3era sentencia,

Código SQL [-]
update facturacion 
set (consumo_agua+cloaca+cargo_variable+cargo_fijo+cargo_exceso_consumo)
where (tipo_factura='Consumo') and (tipo_tarifa='Comercial') into sub_total;

si utilizas un componente del tipo Query, creo que no es posible ejecutar mas de 1 sentencia con firebird (corrijanme si me equivoco), a menos que sea del tipo Script (no estoy seguro), así que trata de ejecutar 1 a la vez.

Por cierto, tambien recuerda ser mas preciso con tu pregunta/consulta al club, indica qué error te da, que componentes utilizas para la conexion con la base, que componente utilizas para ejecutar tus actualizaciones (Update), etc...

Saludos
Responder Con Cita
  #3  
Antiguo 28-10-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Wink

en realidad como que no se entiende mucho... esto te da un error ??? en donde ??? cual es el error ??? desde donde lo ejecutas ???

ahh.. y creo que en forma ordenada se veria mucho mejor...
Código SQL [-]
UPDATE FACTURACION
SET    MONTO_IVA = (CLOACA * ALICUOTA_IVA) / 100
WHERE  (TIPO_FACTURA = 'Consumo')
       AND (TIPO_TARIFA = 'Residencial'
             OR TIPO_TARIFA = 'Especial'
             OR TIPO_TARIFA = 'Gobierno')
       AND (CLOACA <> 0)
       AND (ALICUOTA_IVA <> 0);

UPDATE FACTURACION
SET    SUB_TOTAL = CONSUMO_AGUA + CLOACA
WHERE  (TIPO_FACTURA = 'Consumo')
       AND (TIPO_TARIFA = 'Residencial'
             OR TIPO_TARIFA = 'Especial');

update facturacion set (consumo_agua+cloaca+cargo_variable+cargo_fijo+cargo_exceso_consumo) where (tipo_factura='Consumo') and (tipo_tarifa='Comercial') into sub_total;

UPDATE FACTURACION
SET    SUB_TOTAL = CONSUMO_AGUA + CLOACA + CARGO_VARIABLE + CARGO_FIJO + CARGO_EXCESO_CONSUMO
WHERE  (TIPO_FACTURA = 'Consumo')
       AND (TIPO_TARIFA = 'Industrial A');

UPDATE FACTURACION
SET    SUB_TOTAL = CONSUMO_AGUA + CLOACA + CARGO_VARIABLE + CARGO_FIJO + CARGO_EXCESO_CONSUMO
WHERE  (TIPO_FACTURA = 'Consumo')
       AND (TIPO_TARIFA = 'Industrial B');

UPDATE FACTURACION
SET    MONTO_IVA = (SUB_TOTAL * ALICUOTA_IVA) / 100
WHERE  (TIPO_FACTURA = 'Consumo')
       AND (TIPO_TARIFA = 'Comercial')
       AND (ALICUOTA_IVA <> 0);

UPDATE FACTURACION
SET    MONTO_IVA = (SUB_TOTAL * ALICUOTA_IVA) / 100
WHERE  (TIPO_FACTURA = 'Consumo')
       AND (TIPO_TARIFA = 'Industrial A')
       AND (ALICUOTA_IVA <> 0);

UPDATE FACTURACION
SET    MONTO_IVA = (SUB_TOTAL * ALICUOTA_IVA) / 100
WHERE  (TIPO_FACTURA = 'Consumo')
       AND (TIPO_TARIFA = 'Industrial B')
       AND (ALICUOTA_IVA <> 0);

una vez ordenado esto... desde donde los estas ejecutando... todas en una sola sentencia ???

explica más tu problema

Salu2
__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 28-10-2008
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Ok!, me falto indicarles que estas instrucciones las mando a ejecutar desde un procedimiento almacenado, y en realidad no generar ningun error, solo que no actualiza nada. Tambien voya a colocarleslos mas ordenado y con unos caracteres que se me fueron demas.:



Código SQL [-]
update facturacion set monto_iva=(cloaca*alicuota_iva)/100
where (tipo_factura='Consumo') and (Tipo_tarifa='Residencial' or tipo_tarifa='Especial' or tipo_tarifa='Gobierno') and (cloaca<>0) and (alicuota_iva<>0);
 
update facturacion set sub_total=consumo_agua+cloaca
where (tipo_factura='Consumo') and (tipo_tarifa='Residencial' or tipo_tarifa='Especial');
 
update facturacion set sub_total=consumo_agua+cloaca+cargo_variable+cargo_fijo+cargo_exceso_consumo
where (tipo_factura='Consumo') and (tipo_tarifa='Comercial');
 
update facturacion set sub_total=consumo_agua+cloaca+cargo_variable+cargo_fijo+cargo_exceso_consumo
where (tipo_factura='Consumo') and (tipo_tarifa='Industrial A');
 
update facturacion set sub_total=consumo_agua+cloaca+cargo_variable+cargo_fijo+cargo_exceso_consumo
where (tipo_factura='Consumo') and (tipo_tarifa='Industrial B');
 
update facturacion set monto_iva=(sub_total*alicuota_iva)/100
where (tipo_factura='Consumo') and (Tipo_tarifa='Comercial') and (alicuota_iva<>0);
 
update facturacion set monto_iva=(sub_total*alicuota_iva)/100
where (tipo_factura='Consumo') and (tipo_tarifa='Industrial A') and (alicuota_iva<>0);
 
update facturacion set monto_iva=(sub_total*alicuota_iva)/100
where (tipo_factura='Consumo') and (tipo_tarifa='Industrial B') and (alicuota_iva<>0);


Gracias por su atencion...
Responder Con Cita
  #5  
Antiguo 28-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Hola

A mi se me hace muy raro que hagas todo esto en un procedimiento, sobre todo estas dos instrucciones

Código SQL [-]
update facturacion set monto_iva=(sub_total*alicuota_iva)/100
where (tipo_factura='Consumo') and (tipo_tarifa='Industrial A') and (alicuota_iva<>0);
 
update facturacion set monto_iva=(sub_total*alicuota_iva)/100
where (tipo_factura='Consumo') and (tipo_tarifa='Industrial B') and (alicuota_iva<>0);

Para que lo diferencias si al final haces lo mismo.....

Código SQL [-]
update facturacion set monto_iva=(sub_total*alicuota_iva)/100
where (tipo_factura='Consumo') and (alicuota_iva<>0);

Por otro lado, esto lo haces en un proceso normal o estas haciendo una actualizacion de datos ya existentes?????

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 28-10-2008
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Correcto esto lo hago ejecutando un procedimiento normal desde la herramienta ibexpert con una base de datos existente, y cualquiera de esas instrucciones deberia ejecutarse de cualquier manera, ya que las condiciones en la tabla estan dadas, lo raro es que no actualiza ningun registro.
Responder Con Cita
  #7  
Antiguo 28-10-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por sierraja Ver Mensaje
Correcto esto lo hago ejecutando un procedimiento normal desde la herramienta ibexpert con una base de datos existente, y cualquiera de esas instrucciones deberia ejecutarse de cualquier manera, ya que las condiciones en la tabla estan dadas, lo raro es que no actualiza ningun registro.
Luego de ejecutar cada una de las instrucciones presiona las teclas CTRL+ALT+C y le dices que si quieres confirmar la transacción... o simplemente presiona el botón con un icono de "visto bueno" verde que esta en la parte superior para hacer el commit a tu consulta.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #8  
Antiguo 28-10-2008
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Question

Perdon por olvidar mencionar ese detallazo. Claro, despues de cada ejecucion, persiono eje boton mencionado para hacer un commit pero aun asi no hacen la actualizacion, inclusive, cierro la bd y la vuelvo abrir y nada. No estoy seguro lo que pasa. Tambien he ejecutado cada instruccion con una ventana de SQL y realizo todos los pasos necesarios pero tampoco hace nada. Relmente me preocupa por no conseguir cual es el problema real. Gracias por el apoyo.
Responder Con Cita
  #9  
Antiguo 28-10-2008
Avatar de boreg
boreg boreg is offline
Miembro
 
Registrado: oct 2007
Ubicación: México, México
Posts: 76
Poder: 17
boreg Va por buen camino
Y los datos de los campos que comparas ¿están escritos como en tus instrucciones (mayusculas y minusculas)?, haz un

Código SQL [-]
select * 
from facturacion
where "TUSCONDICIONES"

para ver si te devuelve registros.
Responder Con Cita
  #10  
Antiguo 28-10-2008
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Correcto, ya hice un chequeo en la tabla y los registro en las columnas estan escritos identicamente a como se buscan. Algo que no he mencionado es que la table tiene 320.000 registros (y que no tiene nada que ver con el problema presentado) pienso yo. De todas maneras probaremos otra sugerenia. Gacias por su atencion....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Correccion ortografica Iskariote0087 Varios 4 23-02-2008 10:42:09
corrección en consultas x favor oZNeRoL MySQL 0 28-11-2007 10:12:59
Una pequeña corrección Faust Varios 1 07-07-2006 07:10:39


La franja horaria es GMT +2. Ahora son las 14:57:16.


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
Copyright 1996-2007 Club Delphi