SQL - Ayuda con Distinct

   
Vista:

Ayuda con Distinct

Publicado por Aurora (2 intervenciones) el 06/11/2007 15:28:12
¡¡Hola!!! buen día, mi duda es la siguiente, necesito obtener las ventas de clientes de una farmacia por fecha, pero quiero agruparla por clientes porque un mismo cliente pude haber comprado en varios dias...

Necesito mostrar el nombre del cliente, el codigo, las piezas que se le vendieron y el costo total de la venta...

Utilizo distinct para agrupar los clientes pero cuando un mismo cliente tiene diferente cantidad de piezas vendidas o costo me separa el registro, y no se como hacer para no haga esto...

La consulta que tengo es la siguiente...

declare @@fecha1 smalldatetime
declare @@fecha2 smalldatetime
set @@fecha1 = '2007/10/01'
set @@fecha2 = '2007/10/02'

SELECT distinct(dbo.Clientes.DesTipCli), CONVERT(char(6), dbo.VenDet.Cliente) + CONVERT(char(47),
dbo.Clientes.NomCli) AS DatosCliente, dbo.VenDet.Cant_Vend - dbo.VenDet.Cant_Dev AS Piezas,
dbo.VenDet.CostoUnit AS Venta

FROM dbo.Clientes INNER JOIN dbo.VenDet
ON dbo.Clientes.CodCli = dbo.VenDet.Cliente

WHERE convert(char(10), fechavtasinhora, 101) >= @@fecha1 and convert(char(10), fechavtasinhora, 101) <= @@fecha2

group by dbo.clientes.destipcli, dbo.vendet.cliente, dbo.clientes.nomcli, dbo.VenDet.Cant_Vend, dbo.VenDet.Cant_Dev, dbo.VenDet.CostoUnit

ORDER BY dbo.clientes.destipcli

Espero puedan ayudarme...

Gracias :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Distinct

Publicado por Isaias (5073 intervenciones) el 06/11/2007 17:22:35
¿Podrias decirme que BASE DE DATOS estas ocupando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Distinct

Publicado por Unomásnomás (36 intervenciones) el 06/11/2007 18:39:03
Uhmm, asi a primera vista segun lo que me dices es asi:
Al group by le quite estos campos dbo.VenDet.Cant_Vend, dbo.VenDet.Cant_Dev, dbo.VenDet.CostoUnit ya que te interesa sumarlos no tenerlos por registros.
Tambien quite el distinct ya q el group by hace la agrupacion por el.
Espero te sirva.

declare @@fecha1 smalldatetime
declare @@fecha2 smalldatetime
set @@fecha1 = '2007/10/01'
set @@fecha2 = '2007/10/02'

SELECT
Clientes.DesTipCli,
CONVERT(char(6), dbo.VenDet.Cliente) + CONVERT(char(47), dbo.Clientes.NomCli) AS DatosCliente,
SUM(dbo.VenDet.Cant_Vend - dbo.VenDet.Cant_Dev) AS Piezas,
dbo.VenDet.CostoUnit AS Venta
FROM
dbo.Clientes INNER JOIN dbo.VenDet
ON dbo.Clientes.CodCli = dbo.VenDet.Cliente

WHERE convert(char(10), fechavtasinhora, 101) >= @@fecha1
AND convert(char(10), fechavtasinhora, 101) <= @@fecha2
GROUP BY
dbo.clientes.destipcli,
dbo.vendet.cliente,
dbo.clientes.nomcli

ORDER BY dbo.clientes.destipcli
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar