Wpis z mikrobloga

@venomik: Ale ja chcę zsumować rekordy, a nie podawać warunek który uwzględnia rekordy spełniające jakąś funkcję agregującą. Czyli np sum(property) from table group by anotherproperty having equal property3
@Ghostli: W ogólności: WHERE filtruje rekordy przed zgrupowaniem, GROUP grupuje, HAVING filtruje rekordy po zgrupowaniu. Prawdopodobnie chcesz SELECT sum(property) WHERE date = ? GROUP BY something
@vytah: Tak wygląda wynik mojego obecnego selecta:
SELECT orderline.quantity,
customer.customerId,
customer.customerName,
orderheader.servicedate
FROM (
orderline JOIN orderheader ON orderline.orderheaderid = orderheader.orderheaderid
JOIN
customer ON customer.customerId = orderheader.customerid)
WHERE
orderline.productid = 1 AND orderline.delivered = 0;
Teraz: chcę otrzymać w widoku sumę po quantity dla każdego klienta dla
G.....i - @vytah: Tak wygląda wynik mojego obecnego selecta: 
SELECT orderline.quant...

źródło: comment_Dmjb80AgxHmQMgNTQIHX4hRJL68QA1Y5.jpg

Pobierz
Nie mogę, przecież to zsumuje rekordy po wszystkich datach i wszystkich klientach.


@Ghostli: no przeciez to chcesz osiagnac prawda? Napisales wyraznie "dla każdego klienta dla każdej daty". Czyli chcesz miec agregacje po dacie i po kliencie. To ci podalem jak.
@Ghostli: to powinno działać:
SELECT SUM(orderline.quantity),
customer.customerId,
ANY(customer.customerName),
orderheader.servicedate
FROM orderline JOIN orderheader ON orderline.orderheaderid = orderheader.orderheaderid
JOIN customer ON customer.customerId = orderheader.customerid
WHERE orderline.productid = 1 AND orderline.delivered = 0
GROUP BY customer.customerId, orderheader.servicedate
ewentualnie wywal ANY i pozmieniaj to co w WHERE
@vytah: Cholera, byłem przekonany że sprawdzałem tą opcję i nie działało. Odrzuciłem ją najwyraźniej jako zbyt oczywistą :) @karer: oczywiście też miał rację, w każdym razie działa. Dzięki wszystkim! Chyba powinienem się przespać...