如何使用具有多个 id 的 CASE WHEN 语句

How to use CASE WHEN statement with multiple id

我在问题中使用 CASE WHEN 语句时遇到问题。我有多个 ID 的数据,但每个多个 ID 都有不同的问题。

我想在列而不是行中显示来自每个相同 ID 的每个问题。我尝试使用 case when 和 group by 但第二个问题不显示

这是我的数据:

ID Ticket Problem Date
400 A OFF 2020-12-30 07:00:00
400 A OUT 2020-12-30 09:00:00
410 A OFF 2020-12-30 09:00:00
420 B OUT 2020-12-30 07:00:00
430 B OUT 2020-12-30 09:00:00
430 B OUT 2020-12-30 13:00:00

我要这样显示

ID Ticket 2020-12-30 07:00:00 2020-12-30 09:00:00 2020-12-30 13:00
400 A OFF OUT -
410 A - OFF -
420 B OUT - -
430 B OUT - OUT

谢谢

您可以按如下方式使用条件聚合:

Select ticket,
       max(case when date = your_date1 then problem end) as date_1_problem,
       max(case when date = your_date2 then problem end) as date_2_problem,
       max(case when date = your_date3 then problem end) as date_3_problem
  From your_table t
Group by ticket;

请注意,您必须在此查询中提供日期 1、日期 2 和日期 3 的值。