我是新来的SQL,尝试自我教导,并且已经与我一样挣扎,应该是一个非常简单的查询,或者至少是一个非常常见的一个。我甚至不确定我是否知道用词汇来描述我想要达到的目标,所以如果这个帖子的标题竟然是误导性的,那么我很抱歉! :)在同一个查询中使用相同的列对不同组合的结果返回数据
我有一个大的数据库。我想识别一行中2个结果一起出现的行,或者同一列中的另一个2个结果在设定的时间段内一起出现。
我开始使用AND
但结果为零。我花了整整两三个小时在网上搜索,但成果有限。似乎有很多类似的线程暗示UNION
,SELECT DISTINCT
,JOIN
或其他解决方案,但我完全无法根据我的需要调整它们。
任何指针非常赞赏。
所以,我的表称为VNH.dbo.ClinicalCaseItem
数据表看起来像这样:
ActualDateTime | CaseId | ProcedureTestId | Description | FeeAmount
我需要限制ActualDateTime
大于2017-04-03
或条目的数量会碰上十万100S 。 ProcedureTestId
是关键列。我需要专门将CaseId
与ProcedureTestId 309
与ProcedureTestId 245
一起出现,而那些CaseId
与ProcedureTestId 309
与ProcedureTestId 326
一起出现。
我不会详细说明我尝试过的所有不同的查询,因为已经有半打左右,没有人接近实现我需要的结果,而且大多数都完全失败。
提前感谢
示例数据:
ActualDateTime | CaseId | ProcedureTestId | Description | FeeAmount
2017-04-25 | 123456 | 309 | Place iv catheter | 30.00
2017-04-25 | 123456 | 329 | GA Patient | 100.00
2017-04-27 | 134523 | 309 | Place iv catheter | 30.00
2017-04-27 | 234567 | 245 | Sedate Patient | 45.00
2017-04-28 | 234567 | 309 | Place iv catheter | 30.00
2017-04-28 | 345321 | 245 | Sedate Patient | 45.00
2017-04-29 | 451324 | 309 | Place iv catheter | 30.00
2017-04-30 | 451324 | 309 | Place iv catheter | 30.00
2017-04-30 | 451324 | 375 | Surgical Pack | 28.00
2017-04-25 | 989898 | 309 | Place iv catheter | 30.00
2017-04-27 | 989898 | 245 | Sedate Patient | 45.00
2017-04-25 | 999999 | 309 | Place iv catheter | 30.00
2017-04-27 | 999999 | 245 | Sedate Patient | 45.00
2017-04-27 | 999999 | 326 | Bathe Patient | 45.00
2017-04-27 | 987654 | 375 | Surgical Pack | 28.00
2017-04-25 | 987654 | 309 | Place iv catheter | 30.00
2017-04-27 | 987654 | 245 | Sedate Patient | 45.00
2017-04-27 | 987654 | 329 | GA Patient | 100.00
2017-04-27 | 987654 | 326 | Bathe Patient | 45.00
查询的预期结果将是:
ActualDateTime | CaseId | ProcedureTestId | Description | FeeAmount | count_of
2017-04-25 | 123456 | 309 | Place iv catheter | 30.00 | 2
2017-04-25 | 123456 | 329 | GA Patient | 100.00 | 2
2017-04-27 | 234567 | 245 | Sedate Patient | 45.00 | 2
2017-04-28 | 234567 | 309 | Place iv catheter | 30.00 | 2
2017-04-25 | 989898 | 309 | Place iv catheter | 30.00 | 2
2017-04-27 | 989898 | 245 | Sedate Patient | 45.00 | 2
2017-04-25 | 999999 | 309 | Place iv catheter | 30.00 | 2
2017-04-27 | 999999 | 245 | Sedate Patient | 45.00 | 2
2017-04-25 | 987654 | 309 | Place iv catheter | 30.00 | 3
2017-04-27 | 987654 | 245 | Sedate Patient | 45.00 | 3
2017-04-27 | 987654 | 329 | GA Patient | 100.00 | 3
实际的数据样本将帮助。问题:“键列”是什么意思?它是主键还是外键? – Alex
对不起,只是说 - 最重要的 - 就像我的问题所依赖的那个。 示例数据: – be4con
示例数据请输出您想要的结果。 – Alex