在您的 where 子句中使用 Select Min 和 MAX
Use a Select Min and MAx in your where clause
我使用了一些 select 语句来驱动结果,但是我有 2 个 select 语句,其中 returns 最短约会时间和最长约会时间。但是,如果最小值和最大值相同,我想从我的 where 子句中删除。
SELECT
APPOINTMENTS.userid,
users.LOCATIONID,
MIN(APPOINTMENTTIME) AS mintime,
MAX(APPOINTMENTTIME) AS maxtime
FROM appointments
WHERE APPOINTMENTDATE BETWEEN '2017-01-07' AND '2017-01-07'
AND NOT mintime <> maxtime
GROUP BY appointments.USERID,
users.LOCATIONID,
appointments.APPOINTMENTDATE
我收到错误 Mintime is not valid。
我确定我需要将它保存在一个新的 sub select 但不确定..
干杯
请尝试
select
APPOINTMENTS.userid,
users.LOCATIONID,
min(APPOINTMENTTIME) as mintime,
max(APPOINTMENTTIME) as maxtime
from appointments
where
APPOINTMENTDATE between '2017-01-07' and '2017-01-07'
group by
appointments.USERID,users.LOCATIONID,
appointments.APPOINTMENTDATE
having min(APPOINTMENTTIME) <> max(APPOINTMENTTIME)
根据 Sql 服务器
试试这个
SELECT * FROM (
select
APPOINTMENTS.userid,
users.LOCATIONID,
min(APPOINTMENTTIME) as mintime,
max(APPOINTMENTTIME) as maxtime
from appointments
where
APPOINTMENTDATE between '2017-01-07' and '2017-01-08'
group by
appointments.USERID,users.LOCATIONID,
appointments.APPOINTMENTDATE
)as t WHERE mintime <> maxtime
HAVING
clause用于聚合函数,例如
HAVING NOT MIN(APPOINTMENTTIME) <> MAX(APPOINTMENTTIME)
不过我不知道你为什么在谓词中使用双重否定,根据你的描述你只需要 <>
HAVING MIN(APPOINTMENTTIME) <> MAX(APPOINTMENTTIME)
我使用了一些 select 语句来驱动结果,但是我有 2 个 select 语句,其中 returns 最短约会时间和最长约会时间。但是,如果最小值和最大值相同,我想从我的 where 子句中删除。
SELECT
APPOINTMENTS.userid,
users.LOCATIONID,
MIN(APPOINTMENTTIME) AS mintime,
MAX(APPOINTMENTTIME) AS maxtime
FROM appointments
WHERE APPOINTMENTDATE BETWEEN '2017-01-07' AND '2017-01-07'
AND NOT mintime <> maxtime
GROUP BY appointments.USERID,
users.LOCATIONID,
appointments.APPOINTMENTDATE
我收到错误 Mintime is not valid。
我确定我需要将它保存在一个新的 sub select 但不确定..
干杯
请尝试
select
APPOINTMENTS.userid,
users.LOCATIONID,
min(APPOINTMENTTIME) as mintime,
max(APPOINTMENTTIME) as maxtime
from appointments
where
APPOINTMENTDATE between '2017-01-07' and '2017-01-07'
group by
appointments.USERID,users.LOCATIONID,
appointments.APPOINTMENTDATE
having min(APPOINTMENTTIME) <> max(APPOINTMENTTIME)
根据 Sql 服务器
试试这个 SELECT * FROM (
select
APPOINTMENTS.userid,
users.LOCATIONID,
min(APPOINTMENTTIME) as mintime,
max(APPOINTMENTTIME) as maxtime
from appointments
where
APPOINTMENTDATE between '2017-01-07' and '2017-01-08'
group by
appointments.USERID,users.LOCATIONID,
appointments.APPOINTMENTDATE
)as t WHERE mintime <> maxtime
HAVING
clause用于聚合函数,例如
HAVING NOT MIN(APPOINTMENTTIME) <> MAX(APPOINTMENTTIME)
不过我不知道你为什么在谓词中使用双重否定,根据你的描述你只需要 <>
HAVING MIN(APPOINTMENTTIME) <> MAX(APPOINTMENTTIME)