2013-09-18 1 views
-1

У меня есть запрос в базе данных Access, которая возвращает результаты ниже:года MS Access на сегодняшний день чисел месяца

MthName 2010 
Jan £4.51 
Feb £10.20 
Mar £17.51 
Apr £22.86 
May £28.82 
Jun £33.30 
Jul £37.96 
Aug £42.52 
Sep £47.88 
Oct £54.25 
Nov £60.52 
Dec £65.80 

Это хорошо, но это год на сегодняшний день цифры, и я хотел бы создать запрос что могло бы дать мне фактические месячные числа.

Принимая выше образец число Яна явно £ 4,51, но число февраля является

(£ 10.2- £ 4,51) = £ 5,70

Я пытался использовать что-то вроде DLookUp но мне кажется, что будет быть очень медленным и работать некорректно.

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

Благодаря

+0

Могли бы вы показать, что у вас есть? Я думаю, что в Access 'DLOOKUP' в значительной степени ваш единственный вариант здесь. – James

+0

Поле MTH возвращается как число, поэтому я создал таблицу сопоставления, чтобы вернуть его в MthName. Он также включал поле MthSub, где я скорректировал месяцы, так что у Jan I были MthSub 0 и Feb 1 и т. Д. – Lifesigns

+0

Это моя функция ко второй таблице, но она возвращает результаты из синхронизации. Тест: DLookUp («SumOfIncome», «Brokerage_Budget_Historical_2» »,« MthSub = »& [MTH]) – Lifesigns

ответ

0

Избегайте использования DLookUp столько, сколько вы можете.

если можно добавить столбец [mntNum] с порядковым номером месяц:

mtnNum MthName 2010 
01 Jan £4.51 
02 Feb £10.20 
03 Mar £17.51 
04 Apr £22.86 
05 May £28.82 
06 Jun £33.30 
07 Jul £37.96 
08 Aug £42.52 
09 Sep £47.88 
10 Oct £54.25 
11 Nov £60.52 
12 Dec £65.80 

Запрос

SELECT table.mntNum, table.mntName, table.[2010], [2010]-nz((SELECT [prev].[2010] FROM [table] as [prev] where [prev].[mntNum]=[table].[mntNum]-1),0) AS JUST_THIS_MONTH 
FROM [table]; 

UPD: Результат этого запроса

mntNum mntName 2010 JUST_THIS_MONTH 
1 Jan 4.51 4.51 
2 Feb 10.2 5.69 
3 Mar 17.51 7.31 
4 apr 22.86 5.35 
5 may 28.82 5.96 
6 jun 33.3 4.48 
7 jul 37.96 4.66 
8 Aug 42.52 4.56 
9 Sep 47.88 5.36 
10 Oct 54.25 6.37 
11 Nov 60.52 6.27 
12 Dec 65.8 5.27999999999999 
+0

Думайте, что вы неправильно поняли, что означает OP, по« * номерам текущего месяца »- см. Пример. – James

+0

добавил вывод запроса и claryfications о [mntNum] – 4dmonster

+0

Спасибо, что потребовалось некоторое время, чтобы заставить его работать, потому что у вас был mtnNum в верхней таблице, а затем mntNum в запросе. Действительно ли это работает, и это намного лучше, чем DLOOKUP. – Lifesigns

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