我需要使用一组列标题来转动表格,这些列标题会根据输出中的某个字段而变化。
目前的情况如下:
id | Name | Test Name | Test Performed | Test Value
1 John HIV EIA Reactive
1 John HIV EIA2 Reactive
1 John HIV WB Positive
1 John HIV Final Kit Positive
2 Mark HIV Rapid Reactive
2 Mark HIV EIA Reactive
2 Mark HIV EIA2 Reactive
2 Mark HIV Final Result Positive
2 Mark Immuno CD4% 12.0%
2 Mark Immuno CD4 Lympo 1299
2 Mark Immuni CD4 Absolute 838
3 Carl SY RPR Reactive
3. Carl SY TPHA Reactive
我希望它是这样的,你可以看到列根据Test Performed动态变化:
id | Name | Test Name | EIA | EIA2 | Rapid | WB |Final Kit
1 John HIV Reactive Reactive Positive
2 Mark HIV Reactive Reactive Reactive Reactive
id | Name | Test Name | CD4% | CD4 Lympo | CD4 Absolute
1 Mark Immuno 12.0% 1299 838
id | Name | Test Name | RPR | TPHA
3 Carl SY Reactive Reactive
答案 0 :(得分:0)
要像您一样寻找有效的动态列查询,需要恶作剧。我在†之前完成它的方式通常是使用一个交叉表/数据透视查询来捕获列数字之间的映射(其中你有一些合适的最大值N
)每个条目的最后一列标签。输出结果如下:
Test Name |Test Performed |Index
HIV |EIA |1
HIV |EIA2 |2
[…]
然后你有另一个查询来映射另一种方式,如下所示:
Test Name |1 |2 |3 |4 |5
HIV |EIA |EIA2 |Rapid |WB |Final Kit
Immuno |CD4% |CD4 Lympo |CD4 Absolute | |
SY |RPR |TPHA | | |
最后,您从初始表格中Index
和Test Name
上加入的第一张地图Test Performed
转移以生成交叉表,当您显示结果时,请查看列在第二张地图中输入名称/ Index
以获取Test Performed
。
†虽然在MySQL或C#中不。传递性很有趣!
我将稍后编辑以添加示例SQL,一旦我将其挖掘并正确抽象。不过,这应该是现在的总体思路。