Diskuze: Výběr nejstarší objednávky
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Jen doplním, že se jedná o SQL dotaz z Oracle 11g a že jsem se zasekl tady:
SELECT customers.lastname_customer, orders.date_order
FROM customers
JOIN orders
ON customers.id_customer = orders.id_customer
WHERE orders.date_order IS NOT NULL
ORDER BY orders.date_order
To jsem zkoušel (v kombinaci s group by) ovšem i tak mi to nefunguje stále správně, ke každému uživateli se zobrazí všechny objednávky kde je nějaké datum a já u každého potřebuji jen tu nejstarší objednávku
SELECT customers.lastname_customer, MIN(orders.date_order)
FROM customers
JOIN orders
ON customers.id_customer = orders.id_customer
WHERE orders.date_order IS NOT NULL
GROUP by customers.lastname_customer, orders.date_order
ORDER BY orders.date_order
LIMIT 0,1? Tedy vybrat jen poslední, když už je to seraženo?
Edit: Promiň, nevšiml jsem si, že chceš vybrat od každého
uživatele.
Tak bych dal group by jenom podle customers.lastname_customer
Je to takové divné řešení, ale mělo by fungovat.
SELECT id_order, date_order
FROM orders
WHERE id_order IN (
SELECT id_order
FROM orders
INNER JOIN customers ON orders.id_customer = customers.id_customer
WHERE date_order = (
SELECT MAX(date_order)
FROM orders
WHERE orders.id_customer = customers.id_customer
)
)
Zobrazeno 6 zpráv z 6.