2014-11-25 2 views
0

У меня есть таблица, как это,Создание нескольких полей сумм, основанные на критериях в другой области в доступе MS 2007

I D ------- Количество ----------- Код транзакции ---------- Код филиала -------- Значение Дата

1 -------- 1523 ----------- --------- 35 ----------------------------- 99 ---------- -------- 2014/01/01

2 --------------------- 91- ---------------------------- 10 ------------------ 2014/01/01

3 -------- 789 -------------------- 35 ------------------ ----------- 14 ------------------ 2014/01/02

4 -------- 5000- ------------------ 85 ----------------------------- 99- ----------------- 2014/01/02

5 -------- 6778 -------------- ----- 35 ----------------------------- 5 -------------- ---- 2014/01/03

6 -------- 8000 ------------------- 20 ------- ---------------------- 5 ------------------ 2014/01/03

7 -------- 5646 ------------------- 20 -------------------- ---------- 99 ------------------ 2014/01/03

и т. Д. Он будет иметь миллионы строк. То, что я пытался сделать, это создать отчет для каждого кода филиала.

В этом случае я хочу иметь сумму «суммы», сгруппированную по дате значения для нескольких кодов транзакций. Например: отчет для кода филиала «99'would выглядеть

Значение Дата -------- Сумма Код транзакции„35“ ------------ - Сумма Сделки Код '20' И '85'
2014/01/01 -------------- ??? -------------------------------------------------? ??

2014/01/02 -------------- ??? ------------------------------------------------ ?? ?

2014/01/03 ------------ ??? ------------------------------------------------ ?? ??

и т.д. Это только суммировать суммы, где код филиала был 99

А потом я хочу, чтобы создать несколько различных отчетов, с той же структурой, но и для другого кода филиала. Это возможно?! Я действительно борется здесь. Был бы вечно благодарен за некоторые предложения.

ответ

1

Один из способов - использовать условную агрегацию. В MS Access это выглядело бы так:

select valuedate, 
     sum(iif(transactioncode = '35', amount, 0)) as trans_35, 
     sum(iif(transactioncode = '20' or transactioncode = '85', amount, 0)) as trans_20_85 
from tablelikethis 
where branchcode = '99' 
group by valuedate; 
+0

Привет, Сумма, которую я ищу, исходит из поля «сумма». Сгруппировано по дате значения, а затем для кода транзакции, как у вас есть. Этот код не запечатлел бы это? –

Смежные вопросы