Как суммировать записи разных строк в MS Access?

Я бы не рекомендовал использовать решение с помощью typedef:

#define STATIC_ASSERT(COND,MSG) typedef char static_assertion_##MSG[(COND)?1:-1]

Объявление массива с ключевым словом typedef НЕ гарантируется, что оно будет оцениваться во время компиляции. Например, следующий код в области блока будет компилироваться:

int invalid_value = 0;
STATIC_ASSERT(invalid_value, this_should_fail_at_compile_time_but_will_not);

Я бы рекомендовал это вместо этого (на C99):

#define STATIC_ASSERT(COND,MSG) static int static_assertion_##MSG[(COND)?1:-1]

Из-за ключевого слова static массив будет определен во время компиляции. Обратите внимание, что это утверждение будет работать только с COND, которые оцениваются во время компиляции. Он не будет работать (например, сбой компиляции) с условиями, основанными на значениях в памяти, таких как значения, присвоенные переменным.

2
задан Lee Mac 18 March 2019 в 22:47
поделиться

2 ответа

Вы бы использовали sum(). Например:

select orderid, sum(quantity * unit_price)
from t
group by orderid;

Это дает сумму для каждого заказа. Вы можете изменить запрос, чтобы получить итоговую сумму за каждый продукт или все, что вам нужно.

0
ответ дан Gordon Linoff 18 March 2019 в 22:47
поделиться

Используйте агрегатную функцию sum и group by поле Products_ID, например :

select t.orderid, t.products_id, sum(t.quantity*t.[unit price]) as price
from YourTable t
group by t.orderid, t.products_id

Измените YourTable на свое имя таблицы.

0
ответ дан Lee Mac 18 March 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: