Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-07-2006
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Contar Dtos en un SQl

Hola a todos

Trabajo en delphi 6 y Firebird 1.5

Quien me da luz con lo siguiente

Tengo varios vendedores , varias facturas, varios productos vendidos en esas facturas, pues bien

El select que debo hacer debe contar las veces que un producto es vendido pero no con count ejemplo en dos facturas he vendido dos producto diferentes pero uno dos veces y el otro tres , si sacara un count me diria que vendi 5 veces esos dos productos y estaria correcto pero lo que yo busco es que me diga que esos productos fueron vendidos solo 2 en otras palabras las veces que me agrupa un producto y luego contarlas

Vendedor 1 veces
Peras 500
Manzanas 100
Melones 20

Total de vendidos 3

Vendedor 2 veces

Peras 500
Manzanas 100

Total vendido 2


Entonces el query lo que me debe arrojar es

Vendedor 1 3
Vendedor 2 2

De antemano gracias
__________________
IVAND
Responder Con Cita
  #2  
Antiguo 31-07-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Prueba esto:
Código SQL [-]
select vendedor, count(articulo) as Cantidad
from factura
group by Idvendedor
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 03-08-2006
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Eso esta bien pero no funciona , porque cuando cuento los producto este me cuanta pero las cantidades que se venden un producto y asi no es , debe ser que aunque tenga 100 productos vendidos de un solo codigo este debe arrojarme el valor de uno
__________________
IVAND
Responder Con Cita
  #4  
Antiguo 03-08-2006
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 21
Sick boy Va por buen camino
Para que te demos el sql correcto debes indicar más datos, como los campos que tienes en la tabla.

Mientras, intenta esto:
Código SQL [-]
select id_venta,vendedor, count(distinct(articulo)) as Cantidad
from factura
group by vendedor,id_venta

Aunque creo que tendras que hacer dos consultas, o un store procedure, ya que la consulta anterior te dará una linea por cada ticket de venta, y creo que despues de eso quieres sumarlo, verdad???
Responder Con Cita
  #5  
Antiguo 03-08-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
Empezado por Sick boy
Aunque creo que tendras que hacer dos consultas, o un store procedure, ya que la consulta anterior te dará una linea por cada ticket de venta, y creo que despues de eso quieres sumarlo, verdad???
Creo qeu estás en lo cierto. Nuestro amigo IVAND tendrá que realizar una consultar con "Select's" anidados. FireBird lo soporta!

Código SQL [-]
Select vendedor, count(Select idvendedor, count(idarticulo) 
                                 from factura FactB
                                 group by Idvendedor) as Cantidad
from factura FactA.idvendedor=factb.idvendedor
Where Fact.
group by Idvendedor
Esta consulta la he hecho rápido, puede que tenga algun error. Podria servirte de guía.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 03-08-2006
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
A todos gracias por la respuesta

Lo que se me ocurre pero de seguro existe algo mejor es de mediante un bucle barrer todos los datos y agruparlos por vendedor contado de esta manera las lineas de productos que vendio cada vendedor e insertarlo en una tabla temporal
__________________
IVAND
Responder Con Cita
  #7  
Antiguo 03-08-2006
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 21
Sick boy Va por buen camino
Cita:
Lo que se me ocurre pero de seguro existe algo mejor es de mediante un bucle barrer todos los datos y agruparlos por vendedor contado de esta manera las lineas de productos que vendio cada vendedor e insertarlo en una tabla temporal
No te lo tomes a mal, pero ¿ es que no has visto las soluciones que te hemos dado??

Los selects anidados pueden darte el resultado en un solo query.
Yo no estoy muy puesto en selects anidados, y tu no das ningún dato sobre los campos de las tablas.

Tomate un tiempo en reformular la pregunta añadiendo toda la información posible, y revisa los selects anidados, subconsultas y/o stores procedures, ya que con eso seguro que lo puedes resolver.

O también puedes hacer un bucle como dices, pero eso ya no es SQL.
Responder Con Cita
  #8  
Antiguo 03-08-2006
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Nuevamente gracias a todos por las respuestas el query quedo algo asi ,

Código SQL [-]
Select v1.nombre nomb_ven,count(distinct(key_producto_b)) as Nveces, sum(d.cantidad) TcantVend,
sum(total_linea) tventa,Round(sum(d.cantidad*d.precio_prom),2) Tcosto,
Round(sum(d.total_linea-d.precio_prom*d.cantidad),2) Util
from vendedor v1,cab_fac c,det_fac d
Where c.estado_fac='T'
and extractDate(c.fec_factura) between :desde and :hasta
and c.key_vendedor=v1.key_vendedor
And c.key_cab_fac=d.key_cab_fac

Group by v1.nombre
Order by 1
__________________
IVAND

Última edición por vtdeleon fecha: 03-08-2006 a las 23:44:17.
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
Contar Registros Roilo SQL 10 18-07-2006 21:20:24
contar subdirectorios... Jorghino reyes Varios 2 26-09-2005 16:33:21
contar caracteres Cosgaya Varios 1 04-06-2005 17:40:54
Contar Dias Paradiso Varios 2 27-06-2004 11:35:30
Problema con contar kao SQL 3 07-07-2003 10:47:14


La franja horaria es GMT +2. Ahora son las 20:40:41.


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