SQL - Count y agrupar por día y proveedor

 
Vista:
sin imagen de perfil

Count y agrupar por día y proveedor

Publicado por Alejandro (4 intervenciones) el 21/08/2019 11:29:32
Hola a tod@s,

Tengo una duda que he estado buscando por la web y no he encontrado respuesta, a ver si me podéis ayudar.

Una tabla con Gestor Oracle con los campos: ID_proveedor, ID_factura, fecha_factura,...(con estos 3 campos llega)
En la tabla se va grabando por cada registro una factura asociada a un proveedor. Hay muchos proveedores

Lo que quiero es mostrar agrupando por días y proveedor, los datos y que me diga la cantidad de facturas.

He intentado con Extract:

1
2
3
4
5
6
7
8
Select
    extract (day from fecha_factura) as Dia,
    count(*) as Cantidad,
    ID_proveedor
From proveedores
where fecha_factura > sysdate -100
group by extract (day from fecha_factura), contract_id
order by extract (day from created)

No me lo agrupa por días. Me muestra siempre 1 de cantidad.

Saludos
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

Count y agrupar por día y proveedor

Publicado por leonardo_josue (1173 intervenciones) el 21/08/2019 18:51:35
Hola Alejandro:

1. ¿De qué tipo es tu campo fecha_factura?, puedo suponer que se trata de un tipo DATE, pero eso sólo Dios y tú lo saben con certeza.

2. En tu consulta de ejemplo, en el SELECT usas el campo ID_proveedor, pero en el GROUP BY aparece contract_id. Prueba poniendo en ambos lados el mismo campo por el que deseas agrupar.

3. Prueba si el problema no está con el filtro de la información, es decir, puede ser que sólo una factura cumpla con el WHERE... quita la condición y observa el comportamiento.

4. Si continuas con problemas, postea algunos datos de ejemplo de tu tabla y a partir de esos datos dinos qué es lo que esperas obtener como salida, así te podremos dar alguna otra alternativa.

Saludos
Leo.
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
sin imagen de perfil

Count y agrupar por día y proveedor

Publicado por Alejandro (4 intervenciones) el 22/08/2019 08:55:38
Hola de nuevo y gracias por responder.

Respondo a tus preguntas.

1. ¿De qué tipo es tu campo fecha_factura?, puedo suponer que se trata de un tipo DATE, pero eso sólo Dios y tú lo saben con certeza.
Datetime, de ahí que al intentar agrupar por este campo lo haga con minutos y segundos.

2. En tu consulta de ejemplo, en el SELECT usas el campo ID_proveedor, pero en el GROUP BY aparece contract_id. Prueba poniendo en ambos lados el mismo campo por el que deseas agrupar.
Me he equivocado el contract_id es ID_proveedor.

3. Prueba si el problema no está con el filtro de la información, es decir, puede ser que sólo una factura cumpla con el WHERE... quita la condición y observa el comportamiento.
En el where solo acoto los registros de los 100 últimos días. Además se generan cientos de registros diarios

4. Si continuas con problemas, postea algunos datos de ejemplo de tu tabla y a partir de esos datos dinos qué es lo que esperas obtener como salida, así te podremos dar alguna otra alternativa.
A decir verdad los datos que he dado han sido cambiados por otros por temas de privacidad y protección de datos además de ser así más facil de entender. Lo unico que quería saber es, siguiendo el ejemplo que puse; en una tabla en la que se graban registros con una factura asociada a un proveedor y la fecha(datetime), mostrar la cantidad de facturas por días y proveedor:

Ejemplo:

Proveedor1 34 02/07/2019
Proveedor1 48 03/07/2019
Proveedor2 39 03/07/2019
Proveedor3 45 03/07/2019
Proveedor1 27 04/07/2019

.
.
.

Espero a ver aclarado el tema.

Saludos
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