Я создал 2 таблицы. одна таблица имеет 4 поля. уникальное имя, дату и 3 цифры. Вторая таблица содержит те же поля, но записывает вывод функции слияния. поэтому имеет дату, когда произошла функция обновления или вставки. то, что я хочу сделать, это получить сумму либо разницы между 2 днями, либо, наоборот, итогов двух дней, чтобы определить, сколько значение изменилось за день. Функция слияния обновляется только в том случае, если значение изменилось или ему необходимо вставить новое значение.SQL change with time query
до сих пор у меня есть этот
select sum(Change_Table_1.Disk_Space) as total,
Change_Table_1.Date_Updated
from VM_Info
left join Change_Table_1
on VM_Info.VM_Unique = Change_Table_1.VM_Unique
where VM_Info.Agency = 'test'
group by Change_Table_1.Date_Updated
, но это было бы просто вернуть сумму этого дня обновляется общим, а не разница между двумя днями. Одним из ответов на этот вопрос было бы добавить все новые записи в таблицу, но это будет содержать несколько дубликатов. Таким образом, в моей голове то, что я хочу сделать, это цикл по текущим цифрам за день, затем цикл на следующий день, а также включение всех значений, которые не были обновлены. извините, если я не объяснил это хорошо. поэтому я хочу добиться того, чтобы с течением времени меняться. Если его плохая конструкция в состоянии принять это тоже.
Любая помощь очень ценится.
Возможно, это объяснило бы это лучше. покажите мне общее количество за день 1, если значение не изменилось, тогда покажите мне то же значение для дня 2, если оно изменилось, покажите мне новое значение. и так далее ...
ОК, чтобы уточнить.
Change_Table выглядит
vm date created action value_Field1 value_field_2 Disk_Space
abc 14/10/2013 insert 5 5 30
def 14/10/2013 insert 5 5 75
abc 15/10/2013 update 5 5 75
так из положить, что я хочу для 14 общих для последнего столбца 105. На пятнадцатых а изменились с 30 до 75, но четкостей hasn «т изменились, но все еще Neds быть включены давая 150
поэтому выход будет выглядеть
date disk_Space
14/10/2013 105
15/10/2013 150
Это называется текущим общим или свертывающим дельта-значением. «def» не существует на 15-м, что означает, что изменений нет, поэтому запрос должен включать предыдущее значение. лучший способ добиться этого - создать недостающие строки, поскольку они существуют. вам понадобится новый столбец RunningTotal по каждому значению. и рекурсивный CTE - это способ пойти для этого вычисления. если у вас есть общее значение для любой заданной даты, то это просто простое сложение или вычитание для любых двух дат. попробуйте, при необходимости предоставит запрос CTE. отдых легко, поэтому вы можете это сделать. –
спасибо за вашу помощь. Я решил пойти с общей общей таблицей и работать с циклом 1,7,14,28 дня. основная идея этого проекта заключалась в том, чтобы получить ... вы выросли на х, тогда все последующие изменения после этого требуют заряда. будет читать на рекурсивном CTE и вернуться, если потребуется ... – TXL