2015-11-03 4 views
0

У меня есть доступ к простому листу Excel. Я пытаюсь получить данные с помощью Excel SQL (мост jdbc-odbc). Эта информация поступает из системы принтера, но данные отправляются мне ежемесячно с накопленной информацией. Так, к примеру, я получаю это:Как разложить общую сумму?

enter image description here

Проблема заключается в том, что мне нужно было в этом месяце 11 показал мне 44600 (82006-37406).

Я нашел много информации о том, как делать текущие итоги, но ничего не делать наоборот.

Есть ли способ сделать это со стандартным SQL?

+0

Вы можете добавить новый столбец, чтобы преуспеть? Там вы можете просто вычесть кумулятивы, чтобы подсчитать количество распечаток для одной строки. Если нет, то вам нужно запросить excel два раза, присоедините результаты к «T1.month = T2.month - 1' (плюс сравнения года) и вычтите total_prints друг от друга. – Arvo

ответ

0

Стандартный метод SQL является lag() (стандарт ANSI функция доступна в большинстве баз данных):

select year, month, total_prints, 
     (total_prints - lag(total_prints) over (order by year, month)) as diff 
from t; 
+0

Спасибо, Гордон. Я тестировал его, и он работает с стандартной базой данных. К сожалению, функция lag не работает на excel odbc. Я думаю, что это может быть потерянный случай. –

+0

@ valter.vx - есть несколько (если есть) потерянных случаев в мире разработчиков :) – Arvo

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