Как узнать, имеет ли столбец значение? - PullRequest
0 голосов
/ 13 мая 2019

У меня есть таблица Агентства, в которой есть столбцы visitstartime и visitendtime (Эти поля varchar(50), хотя в нем указано поле даты. НЕТ NULLS) Я хочу узнать, не было ли Агентство никогдабыл визит.Если я сделаю:

SELECT * FROM AGENCY WHERE visitstartime = ' ' and visitendtime = ' '

Он возвращает только ЗАПИСИ, которые не заполнены, но одно и то же Агентство может иметь посещения и заполнить поле.Как я могу увидеть агентства, которые вообще не посещали.

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Вы можете использовать агрегацию:

SELECT AgencyId
FROM AGENCY 
GROUP BY AgencyId
HAVING MAX(visitstartime) = ' ' AND
       MAX(visitendtime) = ' ';

Похоже, вы храните значения даты / времени в виде строки. Я настоятельно рекомендую вам изменить структуру данных, чтобы использовать соответствующий собственный тип даты / времени.

0 голосов
/ 13 мая 2019

Похоже, ваш стол должен называться визит, а не агентство, но я думаю, вы уже заметили некоторые проблемы с дизайном (например, тип данных). Во всяком случае, для вашей проблемы вы можете использовать что-то вроде:

SELECT * 
FROM    AGENCY as ag
WHERE NOT EXISTS (SELECT NULL
                  FROM  AGENCY as ag2
                  WHERE ag2.Agencyid = ag.Agencyid
                   AND ag2.visitstartime <> '' 
                   AND ag2.visitendtime  <> ''
                ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...