Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   creacion de sentencia SQL (https://www.clubdelphi.com/foros/showthread.php?t=26128)

pjjorda 13-10-2005 19:40:50

creacion de sentencia SQL
 
Saludos,

no se me ocurría que poner en el título del mensaje,

querría definir una sentencia SQL, que me genere dos registros,
uno con los clientes con numero < 5000 y otro con los > 4999,
con la cantidad de albaranes de hoy,
SELECT COUNT(*) FROM ALBARANES WHERE FECHA='10/13/05'
Por supuesto el campo cliente está dentro de la tabla ALBARANES,
¿Como se puede hacer, o hay que hacer 2 sentencias?.

Gracias por anticipado.

marcoszorrilla 13-10-2005 19:44:05

Tendrás que explicarte mejor, porque menores de 5000, puede ser que te genere 4900 registros lo mismo ocurre con mayores de 5000, dinos exactamente lo que quieres con un ejemplo de datos reducido y resultado que quieres obtener.

Un Saludo.

pjjorda 13-10-2005 19:52:28

Gracias por tu pronta respuesta,
supongamos que la tabla ALBARANES, tiene un campo que es CLIENTE,
hoy hemos realizado 100 albaranes, el campo CLIENTE puede tener valor entre 1 y 10000,
quiero saber cuantos albaranes se han hecho a clientes con número <5000 y con número > 4999.
No se me ocurre como hacerlo en una sentencia.
Un saludo.

marcoszorrilla 13-10-2005 21:45:11

Si entiendo bien son 2 cosas:

Código SQL [-]
SELECT COUNT(*) FROM ALBARANES WHERE FECHA='10/13/05'
And cliente < 5000

Un Saludo.

jachguate 13-10-2005 22:05:29

Esto lo logras haciendo un join de las tablas:

Código SQL [-]
Select count(*)
  from albaran al
       inner join cliente cl on al.idCliente = cl.idCliente
 where al.fecha = '2005-10-03'
   and cl.cliente < 5000;
   
/* y */

Select count(*)
  from albaran al
       inner join cliente cl on al.idCliente = cl.idCliente
 where al.fecha = '2005-10-03'
   and cl.cliente > 4999;

Saludos.

vtdeleon 13-10-2005 23:02:31

Saludos

Creo que pjjorda quiere el resultado en un solo registro, con una sola consulta.
No sé si tu Gestor pueda soportar este tipo de consulta:
Código SQL [-]
select first 1 (select count(*) from albaran where cliente<4999 and FECHA='10/13/05'),
                (select count(*) from albaran where cliente>5000 and FECHA='10/13/05')
from albaran
Suerte

pjjorda 14-10-2005 09:44:40

Buenos días,
acabo de ver vuestras respuestas, gracias a todos,
en especial a Vtdeleon, exactamente era eso lo que quería,
obtener dos resultados haciendo una sola consulta Select.
funciona perfecto la instrucción que has dado en firebird
(cada día me asombra más, las cosas que se pueden hacer).
Gracias y saludos a todos.

jagilpe 15-10-2005 18:35:07

Creo que puedes obtener el resultado que quieres de una manera más sencilla:

SELECT (cliente<5000) AS DivisionClientes, COUNT(*)
FROM albaran
WHERE FECHA='10/13/05'
GROUP BY DivisionClientes

Con esto obtendrás dos registros, uno para cliente<5000 y otro para cliente >=5000.

P.B.


La franja horaria es GMT +2. Ahora son las 00:45:36.

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