0 голосов
спросил от в категории Access
Цитата:
в запросе нет синтаксической ошибки, ее логическая ошибка, я имею в виду запрос дает результат, но когда вы проверяете не все результаты, это правда. например, в предыдущем запросе, который я использовал Year ([dat_birthday]), это вернет значение года как целое. проверьте эту функцию, IIf (Год ([dat_diagnosisdate]) - Год ([dat_birthday]) lt;=1," True"," False")

эту функцию в запрос будет вычитать два года как целочисленные значения, и если разница меньше или равна единице, то она вернет true, и если разность будет больше единицы, она вернет false.
Так как я хотел что я могу играть с возрастом меньше года, например, с возрастом от 1 месяца до 12 месяцев, затем в iif (условие, «истина», «ложь») мне пришлось вложить другой iif (), если возраст меньше или равно единице. это iif (год (условие), iif (месяц (условие), «истина», «ложь»), «ложь») с этим, теперь я могу указать, хочу ли я, если хотите, возраст менее восьми месяцев, а затем в моем запросе Я буду иметь iif () следующим образом:
IIf (Год ([dat_diagnosisdate]) - Год ([dat_birthday]) lt;=1 , IIf ((MONTH ([ dat_diagnosisdate])) - (Месяц ([dat_birthday])) lt; 8," true"," false")," false") как Age.
это все еще давало мне логическую ошибку, поскольку это не учитывает всю разницу в дате, то есть, если дата рождения - 07/24/2012, а дата диагноза - 06/03/2013, фактический возраст должен быть 11 месяцев, но с этой функцией он не мог рассчитать, как это, вместо этого он возвращает поскольку разница в -1 и году равна единице, то она прошла условия в iif () выше.
, но после попытки поиска дополнительных функций, которые могут использоваться для расчета дат, я пришел, чтобы найти DateDiff (). Я мог бы просто использовать это, чтобы найти разницу в двух датах и ​​вернуть значения в любом году, месяцах, неделях, часах, секундах и т. Д.
Итак, правильное решение было следующим: < br>
SELECT diagnosis.txt_TypeOfVisit, PatientPersonalData.dat_birthday, PatientPersonalData.txt_sex, diagnosis.dat_diagnosisdate, IIf((datediff("m",[dat_birthday],[dat_diagnosisdate]))< 2,"lessthan","greaterthan") As AgeRang1 FROM diagnosis INNER JOIN PatientPersonalData ON diagnosis.ipnr = PatientPersonalData.Ipnr WHERE (((diagnosis.txt_TypeOfVisit)="Revisit") AND ((PatientPersonalData.txt_sex)="F"));



Любые способы благодаря большому количеству парней за вашу поддержку. Его приятно знать, что вы не работаете в одиночку;)

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

Категории

Добро пожаловать на сайт DraftingCode Q&A, где вы можете задавать вопросы и получать ответы от других членов сообщества.

Похожие вопросы

0 голосов
0 ответов
спросил 10 Сен, 18 от richard maccutchan в категории Access
0 голосов
0 ответов
спросил 26 Апр, 10 от eddy vluggen в категории Access
0 голосов
0 ответов
спросил 01 Янв, 70 от MacFirst (120 баллов) в категории Access
0 голосов
0 ответов
0 голосов
0 ответов
спросил 10 Янв, 18 от maciej los в категории Access
...