-1

我正在过滤 Denodo 中 2 个表的票证,这些表记录了对票证所做的所有操作的历史记录。我想要的是看到列关键字是 Null 并且列模板不是“temp~”。我能够完美地达到第一个条件,但第二个没有。好吧,该列中的行不再返回“temp~”,但由于它是历史表,它确实返回了对票证执行的其他操作,例如。保存,完成,完成,所以它仍然返回我试图过滤的我不想要的票号。

SELECT  A.ticket_number, A.created_on, A.keywords, B.Action
FROM table1 AS A LEFT JOIN
(SELECT MAX(action) as Action, ticket_number
FROM table2 GROUP BY ticket_number) AS B on A.ticket_number= B.ticket_number 
WHERE created_on>= '2019-04-15' AND(NOT B.Action= 'Templates~' AND A.keywords IS NULL)
Actual table:
ticket_number | created_on | keywords | Action
ticket1       | 2019-04-15 | dog      | Template1
ticket1       | 2019-04-15 | dog      | Save
ticket2       | 2019-04-17 | NULL     | no_temp
ticket3       | 2019-04-20 | NULL     | no_temp
ticket2       | 2019-04-17 | NULL     | no_temp

Current results:
ticket_number | created_on | keywords | Action
ticket1       | 2019-04-15 | NULL     | Save
ticket2       | 2019-04-17 | NULL     | working
ticket3       | 2019-04-20 | NULL     | Save
ticket2       | 2019-04-17 | NULL     | complete


Expected results:
ticket_number | created_on | keywords | Action
ticket2       | 2019-04-17 | NULL     | no_temp
ticket3       | 2019-04-20 | NULL     | no_temp
4

1 回答 1

0

查看提供的信息,似乎结果是正确的。

查询的 WHERE 条件为:

WHERE created_on>= '2019-04-15' AND(NOT B.templates = 'Templates~' AND A.keywords IS NULL)

Current 结果的所有行都满足此条件。那是

  • created_on等于或大于2019-04-15
  • templates子查询B的值不是 null
  • keywords值为null
于 2019-05-15T06:52:32.740 回答