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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-06-2014
mordaz mordaz is offline
Miembro
 
Registrado: mar 2008
Posts: 32
Poder: 0
mordaz Va por buen camino
Ayuda con consulta SQL

Que tal,

Alguien me puede ayudar a optimizar esta consulta:

Código SQL [-]
SELECT M.CORTE,R.ORDEN,R.CODIGO,A.ARTICULO,R.CANTIDAD,R.PRECIO,R.IMPORTE
  FROM (RESTAURANTE_CONCEPTOS R LEFT JOIN ARTICULOS A ON R.CODIGO=A.CODIGO) LEFT JOIN MOVIMIENTOS_MESAS M ON R.MOV_MESA_KEY=M.MOV_MESA_KEY
 WHERE M.CORTE=1
   AND M.Cancelado='*'

Esta es parte de las tablas

Código Delphi [-]
TABLE "MOVIMIENTOS_MESAS" 
(
  "MOV_MESA_KEY"  INTEGER NOT NULL,
  "CORTE"  INTEGER,
  "CANCELADO"  CHAR(1),
  PRIMARY KEY ("MOV_MESA_KEY")
);

Código Delphi [-]
TABLE "RESTAURANTE_CONCEPTOS" 
(
  "MOV_MESA_KEY"  INTEGER NOT NULL,
  "ORDEN"  INTEGER NOT NULL,
  "CODIGO"  VARCHAR(25) NOT NULL,
  "CANTIDAD"  INTEGER,
  "PRECIO"  FLOAT,
  "IMPORTE"  FLOAT,
);

Código Delphi [-]
TABLE "ARTICULOS" 
(
  "CODIGO"  VARCHAR(25) NOT NULL,
  "ARTICULO"  VARCHAR(40) NOT NULL,
 PRIMARY KEY ("CODIGO")
}

Gracias por su ayuda..
Responder Con Cita
  #2  
Antiguo 03-06-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mordaz Ver Mensaje
Alguien me puede ayudar a optimizar esta consulta:
Sí, alguien puede ayudarte en... ¿optimizar qué?
Responder Con Cita
  #3  
Antiguo 03-06-2014
mordaz mordaz is offline
Miembro
 
Registrado: mar 2008
Posts: 32
Poder: 0
mordaz Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Sí, alguien puede ayudarte en... ¿optimizar qué?
Gracias Casimiro, disculpa me falto un poco de explicacion, esta consulta funciona pero tarda mas de media hora en arrojar un resultado. No se me ocurre otra forma de hacerla.

Si alguien tiene mas conocimiento de Interbase o Firebird, existirá otra forma de realizar esta consulta?

Gracias por su tiempo.
Responder Con Cita
  #4  
Antiguo 03-06-2014
mordaz mordaz is offline
Miembro
 
Registrado: mar 2008
Posts: 32
Poder: 0
mordaz Va por buen camino
Código SQL [-]
SELECT M.CORTE,R.ORDEN,R.CODIGO,R.CANTIDAD,R.PRECIO,R.IMPORTE
  FROM RESTAURANTE_CONCEPTOS R LEFT JOIN MOVIMIENTOS_MESAS M ON R.MOV_MESA_KEY=M.MOV_MESA_KEY
 WHERE M.CORTE=1
   AND M.Cancelado='*'

El problema esta aquí:

Restaurante_conceptos contiene una lista de varios registros que corresponden a uno solo de la tabla de Movimientos_Mesas, si bien ambas tablas tienen una cantidad considerable de registros no encuentro la manera de hacer esta consulta mas eficiente.
Responder Con Cita
  #5  
Antiguo 03-06-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que necesitas explicarte mejor
Responder Con Cita
  #6  
Antiguo 03-06-2014
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Sería mucho más fácil que explicaras que quieres lograr, poniendo tablas así como lo hiciste no nos ayuda mucho para saber exactamente que lógica tienes en mente. Lo único que se puede deducir es que:

Estas haciendo una aplicación para restaurante
Tienes una tabla de conceptos.
Tienes una tabla "movimientos_mesa" (que quien sabe que registre)

pero no sabemos que información quieres obtener, es más fácil si nos dices tengo tales tablas y quiero una consulta que me devuelva tal cosa.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #7  
Antiguo 03-06-2014
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Que tal,
Tratando de entender y echando un poco de imaginacion deduzco:
1.- El codigo del producto de cada Concepto tiene que existir en la tabla de Articulos, por lo tanto este campo a fuerza deberia de estar en ambas tablas, luego yo sustituiria el LEFT por el INNER:
Código SQL [-]
SELECT M.CORTE,R.ORDEN,R.CODIGO,A.ARTICULO,R.CANTIDAD,R.PRECIO,R.IMPORTE   FROM RESTAURANTE_CONCEPTOS R 
     INNER JOIN ARTICULOS A ON R.CODIGO=A.CODIGO 
     LEFT JOIN MOVIMIENTOS_MESAS M ON R.MOV_MESA_KEY=M.MOV_MESA_KEY  WHERE M.CORTE=1    AND M.Cancelado='*'

2.- No indicas si la llave M.MOV_MESA_KEY es unica, si asi fuere aplicaria lo mismo que el punto 1.

Saludos
__________________
Ya tengo Firma!
Responder Con Cita
  #8  
Antiguo 05-06-2014
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
yo creo que debes explicar mejor que es lo q quieres conseguir
que informacion guardas en cada tabla

supongo q articulos es obvio que contiene un listado de articulos

movimiento_mesas que informacion guarda? al no ver cantidades ni precios imagino que debe ser un catalogo de mesas

restaurante_Conceptos al parecer son los articulos en venta

suponiendo que yo este en lo correcto que es lo q quieres reportar?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #9  
Antiguo 05-06-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Me huele que puede faltar algún índice en lo campos por los que se reconcilia....

Faltaría ver cuales son los campos PK y qué índices tienen esas tablas.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta



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
Ayuda con consulta SQL cmfab Varios 24 11-04-2012 17:16:11
Ayuda con consulta SQL n03l SQL 4 18-04-2007 22:03:40
Ayuda Con Consulta enecumene Conexión con bases de datos 26 15-07-2006 01:58:06
Ayuda con consulta raco Varios 4 08-04-2005 21:56:43
Ayuda con consulta albertron SQL 4 27-02-2004 16:19:26


La franja horaria es GMT +2. Ahora son las 23:15:10.


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