SQL Server - Mostrar ventas de un solo Articulo

   
Vista:

Mostrar ventas de un solo Articulo

Publicado por March (3 intervenciones) el 05/02/2018 23:41:25
Buen día

Quisiera me ayudaran con el siguiente tema

Resulta que poseo una tabla de ventas y una para el detalle de estas,
necesito filtrar el numero de ventas en las que solo se ha vendido un solo artículo en especifico pero no lo consigo. siempre me devuelve todas las transacciones, Les muestro mi consulta como punto de partida

De antemano gracias a todos

1
2
3
4
5
6
7
8
9
SELECT A.tienda,COUNT(*) as cantidad
FROM [Ventas] A
INNER JOIN DetalleVentas B
ON A.codigoTienda = B.codigoTienda
AND A.NumeroDoc = B.NumeroDoc
WHERE CONVERT(VARCHAR,A.fecha,112) BETWEEN CONVERT(VARCHAR,@INICIO,112) AND CONVERT(VARCHAR,@FIN,112)
AND A.TipoDoc != 0
AND  B.CodigoProd = '0001'
GROUP BY A.StoreID
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
Imágen de perfil de Isaias

Mostrar ventas de un solo Articulo

Publicado por Isaias (3669 intervenciones) el 06/02/2018 16:59:16
¿En que motor de base de datos esta trabjando?

¿Porque si esta contando por A.tienda,COUNT(*) as cantidad, agrupa por GROUP BY A.StoreID?
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

Mostrar ventas de un solo Articulo

Publicado por marcela (3 intervenciones) el 06/02/2018 17:16:19
El motor es SQL Server 2008

en la agrupación me equivoque, pero ya lo corregí es A.tienda
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
Imágen de perfil de Isaias

Mostrar ventas de un solo Articulo

Publicado por Isaias (3669 intervenciones) el 06/02/2018 19:52:24
Existe una regla de NO HACER CONVERSIONES en la parte del filtrado (WHERE) ya que el plan de ejecucion dejara de utilizar los INDICES.

Quiere obtener las VENTAS de un articulo, no dices si CANTIDAD o IMPORTE, por lo que veo es CANTIDAD de productos vendidos, ¿donde estan las cantidades vendidas? (supongo, que en el detalle), ¿para que ocupa el encabezado?
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

Mostrar ventas de un solo Articulo

Publicado por marcela (3 intervenciones) el 06/02/2018 19:59:36
si es cantidad vendida de ese producto específicamente es decir en el detalle y necesito obtener aquellas ventas donde solo se haya facturado ese producto.

El encabezado por el rango de fecha ya que solo en el encabezado se detalla la fecha
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
Imágen de perfil de Isaias

Mostrar ventas de un solo Articulo

Publicado por Isaias (3669 intervenciones) el 06/02/2018 20:09:15
Pues ya tiene su consulta, cuente los articulos vendidos POR TIENDA, como lo esta haciendo actualmente y solo en el filtro, coloque el producto que desea contar y el rango de fechas, que desea obtener (sin hacer un convert).

¿cierto?
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
Imágen de perfil de Plutarco

Mostrar ventas de un solo Articulo

Publicado por Plutarco (15 intervenciones) el 23/03/2018 01:10:14
Hola,

tu consulta está casi bien, si me permites ayudarte te diría que tu problema es el count(*), para saber el número de ventas de determnado artículo necesitas el contador de tus facturas o como se llame tu movimiento, esto te quedaría de la siguiente manera:

SELECT A.tienda,COUNT(A.NumeroDoc) as cantidad
FROM [Ventas] A JOIN DetalleVentas B ON A.codigoTienda = B.codigoTienda AND A.NumeroDoc = B.NumeroDoc
WHERE CONVERT(VARCHAR,A.fecha,112) BETWEEN CONVERT(VARCHAR,@INICIO,112) AND CONVERT(VARCHAR,@FIN,112)
AND A.TipoDoc != 0
AND B.CodigoProd = '0001'
GROUP BY A.tienda

Ahora te sugiero que para trabajr fechas no las conv iertas a varchar ya que como tu sabes los criterios de ordenación son distintos
en tu consulta @inicio y @Fin deberían ser de tipo DATE, si la fecha del documento es tipo Date no tienes que hacer conversión:

WHERE A.fecha BETWEEN @INICIO AND @FIN

Ahora si tu fecha del documento es tipo DATETIME entonces si conviertelo ya que tiene la hora estampada:

WHERE CONVERT(DATE, ,A.fecha) BETWEEN @INICIO AND @FIN

Salud2 y mucha suerte!!
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
Revisar política de publicidad