Проверка наличия двух соответствующих значений в одном столбце. - PullRequest
0 голосов
/ 02 октября 2018

У меня возникла проблема на моей работе, когда я должен создать отчет, который предупреждает подписчиков, если у сотрудника есть один код задачи на день, а другой нет.Например, если у сотрудника есть код задачи 2000, он также должен иметь код задачи 2010 или 2015 на этот день.

данные в базе данных выглядят так:

    fname | lname | empID | dateworked| taskcode
    ---------------------------------------------
    Jane  | Doe   | 09836 | 2018-10-1 | 2000
    Jane  | Doe   | 09836 | 2018-10-1 | 2000
    Jane  | Doe   | 09836 | 2018-10-1 | 2010
    Arch  | Bald  | 09825 | 2018-10-1 | 2000
    Arch  | Bald  | 09825 | 2018-10-1 | 2015
    Arch  | Bald  | 09825 | 2018-10-1 | 2000

Я не уверен, как я смогу определить, есть ли у сотрудника правильные коды, так как все они находятся втот же столбец.Я пытался использовать SQL Однако я очень новичок в этом.Я бы предположил, что есть способ перебрать столбец, но я не уверен, как это сделать.Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Используйте запрос ниже.Он запрашивает получение empid, в котором ему назначен только один код задачи.Дайте мне знать, если это поможет или вам нужно объяснение.

    create table temp
    (empid int,dateworked date, taskcode int)

    insert into temp
    values(09836,'2018-10-1',2000),
    (09836,'2018-10-1',2000),
    (09836,'2018-10-1',2000),
    (09825,'2018-10-1',2000),
    (09825,'2018-10-1',2015)

    select * from temp

    select empid,dateworked from temp
    group by empid,dateworked
    having count(distinct taskcode) = 1
0 голосов
/ 02 октября 2018

Использовать условный счет.Это выбирает сотрудников, имеющих 2000, но не 2010 или 2015 в тот же день

  SELECT empId, dateworked
  FROM YourTable
  GROUP BY  empId, dateworked
  HAVING COUNT( case when taskcode = 2000 THEN 1 END) > 0
     AND COUNT( case when taskcode IN (2010,2015) THEN 1 END) = 0

Используйте > 0 во втором COUNT, если хотите, чтобы сотрудники имели оба кода.

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