我有一个Microsoft SQL Server 2017表,其结构类似于此:
id | i_id | item_name | date1 | date2 | date3 | date4 | date5 |...
---+------+--------------+------------+------------+------------+------------+------------+---
1 | 1234 | item_a | 01/01/2019 | NULL | 01/03/2019 | NULL | NULL |...
1 | 1234 | item_a | NULL | 01/02/2019 | NULL | 01/04/2019 | 01/05/2019 |...
1 | 1234 | item_b | 01/10/2019 | 01/12/2019 | NULL | NULL | NULL |...
1 | 1234 | item_b | NULL | NULL | 01/15/2019 | NULL | NULL |...
1 | 1234 | item_b | NULL | NULL | NULL | 01/22/2019 | 01/27/2019 |...
2 | 1235 | item_a | 02/01/2019 | NULL | NULL | NULL | NULL |...
2 | 1235 | item_a | 02/02/2019 | NULL | NULL | 02/07/2019 | NULL |...
2 | 1235 | item_a | NULL | NULL | 02/05/2019 | NULL | NULL |...
2 | 1235 | item_b | 02/12/2019 | 02/14/2019 | 02/16/2019 | 02/20/2019 | 02/25/2019 |...
2 | 1235 | item_b | NULL | NULL | NULL | NULL | 02/26/2019 |...
3 | 1236 | item_a | 02/28/2019 | 03/01/2019 | NULL | NULL | NULL |...
3 | 1236 | item_a | NULL | NULL | 03/03/2019 | NULL | NULL |...
3 | 1236 | item_b | NULL | NULL | NULL | 03/05/2019 | NULL |...
3 | 1236 | item_b | NULL | NULL | NULL | 03/07/2019 | 03/10/2019 |...
我想找出一个日期(不一定是同一日期)出现在“ id”和“ i_id”的组合中。
例如,“ id” 1234的所有日期都可以,因为“ id”和“ i_id”的每种组合都有一个日期。但是,“ id” 1235在“ date1”列下有两个日期用于1235和item_a的组合。同样,“ id” 1235在“ date5”列下有2个1235和item_b组合的日期。最后,“ id” 1236在“ date4”列下有2个1236和item_b组合的日期。
我需要确定何时针对每个“ id”和“ i_id”组合出现这样的多个记录,并且更好的是,获得这种情况发生的次数的计数。如果我只列出每个“ id”和“ i_id”组合具有多个日期的记录,那将是理想的选择。
我仍在努力提高SQL技能,因此我不确定如何最好地构造已标识的多个记录中的列表,但可能是类似的表结构,其中仅列出了已标识的多个记录。
任何帮助将不胜感激!谢谢。