Как исключить отрицательные значения в результате - PullRequest
0 голосов
/ 09 июля 2019

Пожалуйста, как мне получить этот запрос, чтобы исключить отрицательные (-) значения

SELECT Enrollment.Participant_ID
    ,Enrollment.Site
    ,Enrollment.ActualDelivery
    ,Forms.[2MonthQoL]
    ,[Enrollment].[ActualDelivery] + 70 AS Due
    ,DateDiff("d", [Due], DATE ()) AS DaysOverdue
FROM Enrollment
LEFT JOIN Forms ON Enrollment.Participant_ID = Forms.Participant_IDFK
WHERE (
        ((Enrollment.ActualDelivery) IS NOT NULL)
        AND ((Forms.[2MonthQoL]) IS NULL)
        );

enter image description here

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Вы можете добавить условие к предложению where:

WHERE Enrollment.ActualDelivery) IS NOT NULL AND
      Forms.[2MonthQoL]) IS NULL AND
      DateDiff("d", [Due], DATE()) >= 0

Это было бы более естественно записать как:

WHERE Enrollment.ActualDelivery) IS NOT NULL AND
      Forms.[2MonthQoL]) IS NULL AND
      [Due] <= DATE()
0 голосов
/ 09 июля 2019

Вы можете использовать функцию ABS(), чтобы получить абсолютное значение числа, например:

SELECT Enrollment.Participant_ID
    ,Enrollment.Site
    ,Enrollment.ActualDelivery
    ,Forms.[2MonthQoL]
    ,[Enrollment].[ActualDelivery] + 70 AS Due
    ,ABS(DateDiff("d", [Due], DATE ())) AS DaysOverdue
FROM Enrollment
LEFT JOIN Forms ON Enrollment.Participant_ID = Forms.Participant_IDFK
WHERE (
        ((Enrollment.ActualDelivery) IS NOT NULL)
        AND ((Forms.[2MonthQoL]) IS NULL)
        );

Если вы просто хотите, чтобы эти негативы были равны NULL, вы можете использовать IIF():

SELECT Enrollment.Participant_ID
    ,Enrollment.Site
    ,Enrollment.ActualDelivery
    ,Forms.[2MonthQoL]
    ,[Enrollment].[ActualDelivery] + 70 AS Due
    ,IIF((DateDiff("d", [Due], DATE ())<0, NULL, (DateDiff("d", [Due], DATE ())) AS DaysOverdue
FROM Enrollment
LEFT JOIN Forms ON Enrollment.Participant_ID = Forms.Participant_IDFK
WHERE (
        ((Enrollment.ActualDelivery) IS NOT NULL)
        AND ((Forms.[2MonthQoL]) IS NULL)
        );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...