Как выбрать строки из таблицы, где группа не содержит значения - PullRequest
0 голосов
/ 18 января 2019

У меня есть таблица, которая содержит следующие поля:

Thedate, Thetime, курс, OR, L1R, L2R, L3R

Я хотел бы возвращать значения только в том случае, если группа (Thetime) не содержит значения "0" в столбце L3Ra.

Я пробовал следующее утверждение, но оно удаляет только те значения, которые содержат «0», где я хотел бы удалить всю группу

  SELECT *
FROM orclass t
WHERE t.l3r NOT IN
   (SELECT s.l3r  
    FROM  orclass s
    WHERE s.l3r = '0')
    and Thedate = "2019-01-18"
ORDER BY t.Thetime

Что я хотел бы сделать, так это удалить все группы (Thetime), которые содержат «0» в столбце L3R.

Thetime L1R L2R L3R
  12:00  1     2   1
  12:00  1     2   0
  13:00  1     1   1
  13:00  2     0   8
  14:00  2     4   9
  14:00  0     3   6

станет:

Thetime L1R L2R L3R
  13:00  1     1   1
  13:00  2     0   8
  14:00  2     4   9
  14:00  0     3   6

потому что группа 12:00 содержит «0» в LR3

Ответы [ 4 ]

0 голосов
/ 18 января 2019

Вы можете использовать это:

SELECT *
FROM orclass o
WHERE Thedate = "2019-01-18"
    AND NOT EXISTS
    (
        SELECT 1
        FROM  orclass o1
        WHERE o1.Thedate = o.Thedate 
            AND o1.Thetime = o.Thetime 
            AND o1.lr3 = '0'
    )
ORDER BY Thetime;
0 голосов
/ 18 января 2019

Мы можем использовать предложение EXISTS, чтобы проверить это:

SELECT
    s1.Thetime,
    s1.L1R,
    s1.L2R,
    s1.L3R
FROM orclass s1
WHERE NOT EXISTS (SELECT 1 FROM orclass s2
                  WHERE s1.Thetime = s2.Thetime AND s2.L3R = 0);

Демо

0 голосов
/ 18 января 2019

использовать связанный подзапрос

select t1.* from table_name t1 
where  not exists ( select 1 from table_name t2 where t2.Thetime=t1.Thetime
                                and L3R =0)
0 голосов
/ 18 января 2019

Вам просто нужно изменить первое условие where на t.Thetime вместо t.l3r, например:

SELECT *
FROM orclass t
WHERE t.Thetime NOT IN
   (SELECT s.Thetime 
    FROM  orclass s
    WHERE s.l3r = '0')
    and Thedate = "2019-01-18"
ORDER BY t.Thetime
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...