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
  • Odpowiedz
@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
  • Odpowiedz
@Ghostli: SELECT sum(property), date GROUP BY date, something
Nie wiem za bardzo co chcesz osiągnąć. Jakiś przykład życiowy, to może będzie jaśniej?
  • Odpowiedz
@Ghostli a nie mozesz zdefiniować widoku bez wskazywania daty tylko sumowac grupujac po dacie a dopiero potem odpytac widok podajac date jaka Cię interesuje?
  • Odpowiedz
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.
  • Odpowiedz
@Ghostli: to powinno działać:
SELECT SUM(orderline.quantity),
customer.customerId,
ANY(customer.customerName),
orderheader.servicedate
FROM orderline JOIN orderheader ON orderline.orderheaderid
  • Odpowiedz
@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ć...
  • Odpowiedz