Club Delphi  
    Paypal   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 12-11-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
También puedes tratar de hacer el mismo select pero utilizando JOINs

Código SQL [-]
select c.ncentro, l.carticulo, l.ncod_albaran, l.ccod_serie,
l.ncod_orden,c.npuntoventa, c.ncliente, c.dfecha, 
l.ncantidad1, l.ncantidad2, l.ncantidadvalor, c.ntipoop
from cabalbcli c
left join linalbcli l
on c.ncod_albaran = l.ncod_albaran and c.ccod_serie = l.ccod_serie
/* linalbcli deberia tener un indice por ncod_albaran,ccod_serie */
left join articulos a
on l.carticulo = a.ccod_articulo
/* articulos deberia tener un indice por ccod_articulo */
left join artifabr af
on af.ccod_articulo=a.ccod_articulo
/* artifabr deberia tener un indice por ccod_articulo */
left join multipuntosventa m
on m.ncod_puntoventa=c.npuntoventa  
/* multipuntosventa deberia tener un indice por ncodpuntosventa */
where
 and c.lfacturable=0
 and c.ntipoop=2
 and (c.dfecha >= '10/01/10' and c.dfecha <= '10/31/10')
 and l.lenvase=0
 and l.ncantidadvalor < 0
 and (l.ctipolinea='V' or l.ctipolinea='P' or l.ctipolinea='R')
 and l.nenlacefab is null
 and af.ncod_fabricante = 1
 and af.lprincipal=1 m.ncod_fabricante=1
 and af.csureferencia is not null
 and m.nptovtaserv is null
 order by l.carticulo, l.ncod_orden, l.ccod_serie, l.ncod_albaran
 
/* por el where que utilizas :
   CABALBCLI deberia tener un indice por lfacturable, ntipoop, dfecha
*/

Notas:
He utilizado alias (cabalbcli c, por ejemplo) para que el sql sea más legible

Presta especial atención a los índices que te marco, pues son los que utilizará para tratar de unir una tabla con otra.

Dato que utilizas "and campo is null" entiendo que quieres que te aparezcan registros en los que la tabla asociada no tiene registros. Por eso he utilizado LEFT JOIN.
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
PHP-Barcode en un servidor Linux maro PHP 7 07-11-2007 20:01:54
intraweb y servidor linux jgutti Internet 3 25-04-2005 23:09:38
Servidor de Correo en Linux COCOL Linux 1 22-04-2005 16:13:33
Como hacer un shares en un Servidos Linux para que otro Servidor Linux .... FernandoFAI Linux 0 15-04-2004 09:33:07
Servidor Unix Linux Omar Alejandro Varios 1 25-09-2003 04:13:45


La franja horaria es GMT +2. Ahora son las 22:18:08.


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