[ Foro de SQL (y MySQL) ]

Problemas relaciones 1:N entre tablas

09-Mar-2018 03:28
Invitado (beleen_sql)
1 Respuestas

Buenas, mi consulta es relativa a la relación 1:N entre dos tablas, en el caso del ejemplo que propongo es sales 1:N sales_entries.
CREATE TABLE sales
(sale_id VARCHAR(20) PRIMARY KEY
,created_at TIMESTAMP);
CREATE TABLE sales_entries
(sale_entry_id VARCHAR(20) PRIMARY KEY
,sale_id TEXT
,discount INTEGER);

Quiero realizar una consulta en la que aparezcan los descuentos ordenados por fecha:
Opción1:
SELECT discount FROM sales_entries SE, sales S
WHERE SE.sale_id = S.sale_id
GROUP BY EXTRACT(MONTH FROM created_at), EXTRACT(YEAR FROM created_at), currency
Opción2:
SELECT discount FROM sales_entries SE NATURAL JOIN sales S
GROUP BY EXTRACT(MONTH FROM created_at), EXTRACT(YEAR FROM created_at), currency

En ambos casos sólo me aparece la primera coincidencia entre ambos ids, los demás no los muestra, ¿podría alguien indicarme dónde está el problema?

Gracias, un saludo


14-Mar-2018 00:42
Nacho Cabanes (+36)

¿Qué gestor de bases de datos utilizas? De momento, yo te diría de probar a lanzar la consulta sin el GROUP BY. De hecho, mencionas un campo CURRENCY que no aparece en ninguna de las dos tablas. También hay alguna inconsistencia menor, como que SALE_ID es un VARCHAR(20) en una tabla y un TEXT en otra, pero eso no debería provocar que te saliera un único resultado (quizá sí un mensaje de error el algún SGBD).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)