Я изо всех сил пытаюсь найти пример того, как вернуть условную сумму с помощью запроса LINQ или LAMBDA. Я написал оба независимо, но сочетание CASE с SUM раздражает. У меня возник соблазн «обмануть» и использовать представление SQL, но я решил сначала спросить. Я очень ценю любые предложения. Вот мой SQL, который я хочу преобразовать.
SELECT p.product_name,
SUM(CASE WHEN o.order_dt <= getdate() - 1 THEN o.quantity END) AS volume_1day,
SUM(CASE WHEN o.order_dt <= getdate() - 7 THEN o.quantity END) AS volume_7day,
SUM(CASE WHEN o.order_dt <= getdate() - 30 THEN o.quantity END) AS volume_30day,
SUM(o.quantity) AS volume_all
FROM products p left outer join orders o on p.product_id = o.product_id
GROUP BY p.product_name