|
|
|
| Как суммировть в запросе время? | |
|
| |
|
|
|
| телепаты в отпуске , т.е. конкретней ставь задачу.
Ну чтоб не получить ответ типа: очень просто или руками | |
|
| |
|
|
|
| Делаю запрос такой запрос:
SELECT [Информационная записка].ФИО, [Информационная записка].Зап1или2, dhCTimeStr(Sum(dhCMinutes([КолЧас]))) AS КолЧас5
FROM [Информационная записка]
GROUP BY [Информационная записка].ФИО, [Информационная записка].Зап1или2
HAVING ((([Информационная записка].Зап1или2)="1"));
И модуль:
Declare Function GetProfileString Lib "kernel32.dll" Alias "GetProfileStringA" _
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Function dhCMinutes(dtmTime As Date) As Long
dhCMinutes = TimeValue(dtmTime) * 24 * 60
End Function
Function dhCTimeStr(lngMinutes As Long) As String
dhCTimeStr = Format(lngMinutes \ 60, "0") & _
GetTimeDelimiter() & Format(lngMinutes Mod 60, "00")
End Function
Private Function GetTimeDelimiter() As String
Const conMaxSize = 10
Dim strBuffer As String
Dim intLen As Integer
strBuffer = Space(conMaxSize)
intLen = GetProfileString("intl", "sTime", "", strBuffer, conMaxSize)
GetTimeDelimiter = Left(strBuffer, intLen)
End Function
И почему-то не работает | |
|
| |
|
|
|
| а зачем такие сложности?
чуть ниже дал ответ на что-то подобное, может подойдет
http://hiprog.com/forum/read.php?id_forum=1&id_theme=2540&page=1 | |
|
| |
|
|
|
| Спасибо, все получилось. Я именно так и сделала | |
|
| |
|
|
|
| а как время суммировать не в формате 0ч.00м. 00с., а в таком формате 00:00? | |
|
| |
|
|
|
| Вот такую строчку как переписать, чтоб там в итоге появлялось время в формет 00:00
Variant1: Int(Sum([КолЧас])*24) & "ч. " & Format(Sum([КолЧас])-Int(Sum([КолЧас]));"nn"" м. ""ss"" с.""") | |
|
| |
|
|
|
|
Variant1: Int(Sum([КолЧас])*24) & "ч. " & Format(Sum([КолЧас])-Int(Sum([КолЧас]));"nn:ss")
|
| |
|
| |
|
|
|
| как сделать чтоб было без часов? я ж сказала, в формате 00:00 - краткий формат времени - часы и минуты | |
|
| |
|
|
|
| а если вариант что сумма времени будет суток, как выводить?
ЗЫ. См. хелп по функции Format | |
|
| |
|
|
|
| мне нужно именно количество часов и минут....хелп смотрела, там не написано как сделать такой формат | |
|
| |
|
|
|
|
Variant1: Int(Sum([КолЧас])*24) & ":" & Format(Sum([КолЧас])-Int(Sum([КолЧас]));"nn")
|
| |
|
| |
|
34 Кб. |
|
| спасибо, получилось... но в итоговом запросе все-равно не группирует по фамилиям.... помогите пожалуйста! я пишу так:
SELECT qryUnion.ФИО, qryUnion.КЧЛ AS Variant, qryUnion.КЧР AS Variant1, qryUnion.КЧП AS КолЧасО
FROM (select ФИО, [Variant] as [КЧЛ], [Variant1] as КЧР, 0 as [КЧП]
From Объединенный
UNION
Select [ФИО], 0 as [КЧЛ], 0 as [КЧР], КолЧасО as КЧП
From Запрос3) AS qryUnion
GROUP BY qryUnion.ФИО, qryUnion.КЧЛ, qryUnion.КЧР, qryUnion.КЧП; | |
|
| |
|
|
|
| а что за поля qryUnion.КЧЛ, qryUnion.КЧР, qryUnion.КЧП. Если по ним суммирование, то в GROUP BY они не нужны, а в SELECT делать Sum ?
Вот примерчик
SELECT qa2.q2, Format(Sum([ds]),"hh:ss") AS Выражение1
FROM (SELECT qqq.q2, qqq.ds
FROM qqq
WHERE (((qqq.q1)="1"))
union
SELECT qqq.q2, qqq.ds
FROM qqq
WHERE (((qqq.q1)="2"))) AS qa2
GROUP BY qa2.q2;
|
| |
|
| |
|
|
|
| это не подходит... подскажите пожалуйста как исправить мой запрос | |
|
| |
|
|
|
| это не подходит... подскажите пожалуйста как исправить мой запрос | |
|
| |
|
|
|
| это не подходит... подскажите пожалуйста как исправить мой запрос | |
|
| |
|
|
|
| Для того чтобы исправить нужно знать что и как суммировать и по чему делать группировку. Так что полное описание таблиц, полей и подзапросов. И какой ожидаемый результат (да хоть в ворде накидайте). Иначе разговор бессмыслен, т.к. угадывать что же именно нужно нет никакого интереса | |
|
| |
|
|
|
| Есть таблица "Информационная записка", в ней столбцы ФИО, Зап1или2 и КолЧас. Я делаю Запрос1, где выбираю ФИО, Зап1или2=1, КолЧас (этот столбец сразу суммирую по каждой фамилии).
Далее делаю Запрос2, где выбираю ФИО, Зап1или2=2, КолЧас (этот столбец сразу суммирую по каждой фамилии).
Есть таблица "Отработка/переработка", в ней столбцы ФИО и КолЧасО. Делаю Запрос3, где ФИО и КолЧасО
Далее объединяю Запрос1 и Запрос2 в Запрос "Объединенный"
Далее объединяем Запрос "Объединенный" и Запрос3
Мне подсказали, чтьо лучше объединить 2 запроса - Запрос1 и Запрос2 в такой:
SELECT
[Информационная записка].ФИО, Sum(IIf([Информационная записка]![Зап1или2]=1,[Информационная записка]![КолЧас],0)) AS КолЧасЗап1, Sum(IIf([Информационная записка]![Зап1или2]=2,[Информационная записка]![КолЧас],0)) AS КолЧасЗап2,
Sum(Отработка/переработка.КолЧасО) AS КолЧасовО
FROM Отработка/переработка AS ОП INNER JOIN [Информационная записка] AS ИЗ
ON ОП.ФИО = ИЗ.ФИО
GROUP BY ИЗ.ФИО
но тут ошибка выходит "Ошибка синтаксиса в предложении FROM" | |
|
| |
|
|
|
| тогда уж если делаете синонимы названиям таблиц, то их и используйте. И еще в плане рекомендаций: старайтесь использовать английские названия таблиц и полей (если с английским туго, то можно латиницей)
должно получится что-то вроде
SELECT
ИЗ.ФИО, Sum(IIf(ИЗ.[Зап1или2]=1,ИЗ.[КолЧас],0)) AS КолЧасЗап1,
Sum(IIf(ИЗ.[Зап1или2]=2, ИЗ.[КолЧас],0)) AS КолЧасЗап2,
Sum(ОП.КолЧасО) AS КолЧасовО
FROM
[Отработка/переработка] AS ОП INNER JOIN [Информационная записка] AS ИЗ
ON ОП.ФИО = ИЗ.ФИО
GROUP BY ИЗ.ФИО
|
В принципе, я так думаю, должна быть еще выборка по датам, а то здесь получается за весь период | |
|
| |