Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   como hago esta consulta. (https://www.clubdelphi.com/foros/showthread.php?t=14247)

edy_aca 14-09-2004 18:15:00

como hago esta consulta.
 
hola buenas veran solo lo que quiero es lo siguiente, quiero hacer una consulta que de de como resustato todos los valores que se encuentren en un rango de fechas y que cumplan mas requisitos. tengo esta sentencia pero no me sale:

metodo#1:
SELECT DISTINCT DETTRA.* FROM DETTRA WHERE SERIE='P' AND CANREC = 0 and fecha >= '09/01/2004' and fecha<= '09/30/2004' ORDER BY TIENDA,TDAORI

veran existen filas que se duplican en el campo numtra y lo que quiero es que no se dupliquen. lo hice de esta forma y si funciona:

metodo#2:
SELECT DISTINCT numtra FROM DETTRA WHERE SERIE='P'
AND CANREC = 0 and fecha >= '09/01/2004' and fecha<= '09/30/2004'
ORDER BY TIENDA,TDAORI


sustitui DISTINCT DETTRA.* por DISTINCT numtra pero yo necesito que se presenten todos los campos de la tabla y con el metodo 2 solo me muestra numtra. gracias x la ayuda

Aztaroth 14-09-2004 18:20:49

Consulta SQL
 
Ya probaste agrupando

SELECT DISTINCT DETTRA.* FROM DETTRA WHERE SERIE='P' AND CANREC = 0 and fecha >= '09/01/2004' and fecha<= '09/30/2004' ORDER BY TIENDA,TDAORI group by [Campos]

edy_aca 14-09-2004 18:25:56

otra forma de hacerlo fue
 
otra forma de hacerlo fue esta:

SELECT
DETTRA.NUMTRA,
DETTRA.TDAORI,
DETTRA.TIENDA
FROM
DETTRA
WHERE
(SERIE = 'P') AND
(CANREC = 0) AND
(fecha >= '09/01/2004') AND
(fecha <= '09/30/2004')
group by
DETTRA.NUMTRA,
DETTRA.TDAORI,
DETTRA.TIENDA
order by numtra

pero necesito todos los campos.. muchas gracias x su ayuda

roman 14-09-2004 20:31:22

Lo que sucede es que distinct sólo puede considerar iguales dos renglones si todos los campos listados coinciden, de otra forma, ¿como haría para descartar uno de ellos? ¿Qué criterios usaría? Tú mismo, ¿cómo le harías? Si, por ejemplo tienes los renglones

(84, 'un valor', ...)
(84, 'otro valor',...)

tú quieres que distinct te devuelva sólo uno de ellos ya que el 84 (numtra) se repite. Pero de esos dos renglones, ¿cuál se escoge?

// Saludos

edy_aca 17-09-2004 17:09:48

muchas gracias Roman
 
gracias hermano, al fin lo entendi. por otro lado tengo este problema
veras he hecho esta consulta y subconsulta:

SELECT * FROM SUMEMB where docto
in
(

SELECT DISTINCT docto FROM SUMEMB
INNER JOIN DETTRA ON (SUMEMB.DOCTO = DETTRA.NUMTRA) AND (SUMEMB.TDAORI = DETTRA.TDAORI) AND (SUMEMB.TDADES = DETTRA.TIENDA)
WHERE
((SUMEMB.FECHA >= '08/01/2004') AND
(SUMEMB.FECHA <= '08/31/2004') AND
(SERDOC = 'P')) AND
((EDOEMB = '') OR
(EDOEMB = 'E'))
)

** como veras quiero todos los registros de sumemb segun la subconsulta y que no se repitan

*** el problema es que con la consulta que expreso, simplemente el programa en donde la ejecute (IB console, EMS interbase & firebird Manager, Delphi) deja de responder.


y eso pasa en cualquier pc que use ..

me podrias ayudar.


La franja horaria es GMT +2. Ahora son las 15:32:26.

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