Просуммировать по условиям ... млин

HeigHog
Дата: 22.09.2005 06:17:49
Такая вот проблема: запрос выводит таблицу (см. в прикр. файле), нужно просуммировать все значения колонки "Время", где Action=7 и отнять от них сумму значений "Время", где Action=6. ... буду очень признателен за любую идею :-)
SAS!
Дата: 22.09.2005 08:03:42
Попробуйте использовать Dsum. Там можно критерии задавать
Latuk
Дата: 22.09.2005 09:30:07
Вычислить в агрегирующих полях формы или запросом?
AlTis
Дата: 22.09.2005 10:02:21
=sum(Switch(action=6;Часы;action=7;-часы))
Пользователь2
Дата: 22.09.2005 11:17:17
Лучше так, чтобы число не было отрицательным.
=Sum(Switch([Action]=6;-[Часы];[Action]=7;[часы]))

Но это для часов, а для поля, содержащего время в формате чч:мм:сс лучше так сделать:

В стандартном модуле.

Function TimeToSeconds(dtm As Date)
    TimeToSeconds = TimeValue(dtm) * 24 * 3600
End Function

Function FormatTime(lngMinutes As Long)
    FormatTime = Format(lngMinutes \ 3600, "00") & ":" _
      & Format((lngMinutes \ 60) Mod 60, "00") & ":" _
      & Format(lngMinutes Mod 60, "00")
End Function

И в данных поля:

=FormatTime(Sum(Switch([Action]=6;-TimeToSeconds([Время]);
[Action]=7;TimeToSeconds([Время]))))