Доброго времени суток, Посетитель!
|
|
|
|
|
|
|
|
|
вид форума:
|
|
49 Кб. |
|
| Помогите доработать запрос
существует таблица [t] в которой поля "дата", "время", "код кнопки"
создан запрос [t Запрос] в котором добавилось вычисляемое поле "мин" и "название"
поле "мин" (время в минутах)
требуется добавить в поле "прочее"
надпись "начало смены" напротив надписи "начало", как показано на рисунке,
согласно следующего условия
- поле "мин" должно соответствовать интервалу от 10 до 30мин
- в этой же строке в поле "название" обязательно должна быть "кнопка №1"
- так же в поле "название" на следующей строке должно быть "начало"
только в этом случае в новом столбце "прочее" напротив надписи "начало"
должно высветиться "начало смены" | |
|
| |
|
|
|
| как-то так
SELECT t.№, t.Дата, t.Время, Format(IIf(nz(DMin("[№]","[t]","[t].[№]>" & [№]),0)=0,"",DLookUp("[время]","[t]","t.№=" & DMin("[№]","[t]","[t].[№]>" & [№]))-[время]),"Short Time") AS Мин, t.[Код Кнопки], t.Название, IIf([название]="начало" And DLookUp("[Название]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))="Кнопка№1" And ([время]-DLookUp("[время]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))>=#00:10# And [время]-DLookUp("[время]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))<=#00:30#),"Начало работы","") AS Прочее
FROM t; | |
|
| |
|
|
|
| Добрый день разбираюсь с Вашим ответом
выделенная часть запроса работает как часы
SELECT t.№, t.Дата, t.Время, Format(IIf(nz(DMin("[№]","[t]","[t].[№]>" & [№]),0)=0,"",
DLookUp("[время]","[t]","t.№="
& DMin("[№]","[t]","[t].[№]>" & [№]))-[время]),"Short Time")
AS Мин, t.[Код Кнопки],
Nz(DLookUp("[название кнопки]","кнопки","[к кнопки]='" & [код кнопки] & "'"),"Кнопка не зарегестрирована")
AS название,
IIf([название]="начало" And DLookUp("[Название]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))="Кнопка№1"
And ([время]-DLookUp("[время]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))>=#00:10#
And [время]-DLookUp("[время]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))<=#00:30#),"Начало работы","")
AS Прочее
FROM t;
А вот эта часть ни в какую
пишет в поле "прочее" #ошибка при нажатии мышкой пишет сообщение 5-ть раз
Ошибка синтаксиса (пропущен оператор) в выражении запроса 't.№=' | |
|
| |
|
|
|
| А почему бы ему так не писать
вы пытаетесь Акс сразу и исправлять и считать в одном запросе заставить
вот у него крышу и рвет
в первой части расчитать поле название (и в тоже время это поле таблицы) а потом опираясь на это поле (чего таблицы или запроса) расчитать поле прочее | |
|
| |
|
|
|
| поле "название" создается только в этом запросе, в таблице его нет, поэтому оно принадлежит только запросу | |
|
| |
|
|
|
| а можно как то вот этот вариант подредактировать? выделенное работает, остальное никак
SELECT t.№, t.Дата, t.Время,
DateDiff("n",CDate(t.[дата] & " " & t.[время]),
(SELECT TOP 1 CDate(t1.[дата] & " " & t1.[время])
FROM [t]t1
WHERE t1.[№]>t.[№]
ORDER BY t1.[№]
)) AS мин, t.[Код кнопки], Nz(DLookUp("[название кнопки]","кнопки","[к кнопки]='" & [код кнопки] & "'"),"Кнопка не зарегестрирована") AS название
FROM t
ORDER BY t.№;
SELECT [№],[Время],[мин],[название],
FROM [t1 Запрос] as x1 LEFT JOIN [t1 Запрос] as x2 ON x1.[№]=x2.[№]-1
IIf(x1.[Время] Between #12/30/1899 7:0:0# And #12/30/1899 8:30:0# And x1.[мин] Between 10 And 60 And x2.[название] In ("начало"),"НАЧАЛО СМЕНЫ","") AS прочее;
но это все должно быть в одном запросе | |
|
| |
|
|
|
| SELECT t.№, t.Дата, t.Время, Format(IIf(nz(DMin("[№]","[t]","[t].[№]>" & [№]),0)=0,"",
DLookUp("[время]","[t]","t.№="
& DMin("[№]","[t]","[t].[№]>" & [№]))-[время]),"Short Time")
AS Мин, t.[Код Кнопки],
Nz(DLookUp("[название кнопки]","кнопки","[к кнопки]='" & [код кнопки] & "'"),"Кнопка не зарегестрирована")
AS название, IIf([Код Кнопки]="006BD590" And DLookUp("[Код Кнопки]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))="00E8D48E"
And (([время]-DLookUp("[время]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))>=#00:10#
And [время]-DLookUp("[время]","[t]","t.№=" & DMax("[№]","[t]","[t].[№]<" & [№]))<=#00:30#) And ([Время] Between #12/30/1899 7:0:0# And #12/30/1899 8:30:0#)),"Начало работы","")
AS Прочее
FROM t; | |
|
| |
HiProg.com - Технологии программирования
|