![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
sentencia sql firebird
Hola amigos,
No sabia como titular el post para que sea claro, pero necesitaba saber si esta sentencia es valida o tiene alguna fisura.
la idea es, en un entorno donde voy metiendo los productos en una factura de compra en la que la estructura es: cantidad, nombreproducto, preciocoste, preciototal(sin iva) esos datos estarian en la tabla de comprasdetalle, y en la tabla de productos el iva. Metiendo cada vez un producto, me actualizaria el total sin iva y el iva. No se si esa sentencia sql se debe hacer asi o hay alguna otra forma usando un inner join. Mas que nada por hacer las cosas correctamente aunque funcionen. gracias Última edición por ecfisa fecha: 08-04-2016 a las 04:53:49. Razón: ajustar el código para visualización completa |
#2
|
||||
|
||||
No es mas facil probarla?
Yo hice un simple SELECT * FROM A, B y ni se quejo Hay varios tipos de joins en Firebird, en el sitio de IBExpert hay buena documentacion. De hecho, por lo menos en la busqueda apurada que hice, es el unico que menciona la sintaxis como la que pusiste vos: omitiendo el tipo de join Algunos ejemplos validos
|
#3
|
||||
|
||||
gracias por contestar
![]() Si, probarla si la he probado, de hecho uso flamerobin y funciona bien. La pregunta era simplemente si asi estaba bien la sentencia sql o hay alguna otra forma mas optimizada o mas rapida para hacer eso mismo. gracias ![]() |
#4
|
||||
|
||||
Revisa estos articulos:
Entendiendo a los Join Join Implicito y Join Explicito Inner Join y Outer Join Natural Join y Cross Join |
#5
|
||||
|
||||
Cita:
Al menos eso es lo que me explicaron hace muuuuuuchos años, no sé si seguirá igual.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
dos cositas (tonterías):
- Supongo estarás en dialecto 3, porque dependiendo de los tipos de cada campo, esa división por 100, no retornaría el valor correcto en dialecto 1. Entiendo que usas el 3 y no tienes problemas con BBDD antiguas. - Los alias usados en ese SQL puede ser un infierno cuando tengas más tablas. Yo por ejemplo uso la primera letra de cada palabra: COMPRADETALLES CD, PRODUTOS P. Usa dos letras o como te sea fácil, lo agradecerás al leer el select: sum(cd.cantidad*cd.PRECIOCOSTE*(p.iva/100)) En cuanto a tu pregunta original, entiendo que usas claves primarias y ajenas (foráneas), así que está optimizada. Siempre que puedas, usa índices simples en Firebird. Me refiero a que no crees un índice en la tabla formado por dos o más campos , Firebird solo los usa en casos muy concretos. Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Gracias por la, información, me queda claro q mientras, funcione no hay problema.
Solo q en la, página firebird21 habla de optimizar filtros y consultas para filtrar datos Enviado desde mi Moto G 2014 mediante Tapatalk |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
No Autoincrementa firebird en sentencia Insert Into | MartinS | SQL | 4 | 16-03-2012 11:28:30 |
Campo Calculado con la Sentencia if en FireBird | DasGrun | Firebird e Interbase | 3 | 29-08-2011 23:31:56 |
Error en concatenacion de Sentencia SQL, Firebird 2.5 | Adrian Murua | SQL | 15 | 02-04-2011 00:08:00 |
Duda en sentencia de firebird | vivamotos | Firebird e Interbase | 6 | 10-09-2007 11:17:18 |
sentencia sql echa abajo firebird | CarlosN | Firebird e Interbase | 4 | 06-04-2004 00:11:29 |
![]() |
|