2017-02-26 57 views
0

我目前正在使用下面的查询来拉取相同样本记录中4行所表示的数据,并希望将其平铺为每个样本1个流。附加查询结果的任何帮助信息,非常感谢。如何将查询数据变平

select s.name as CRF, a.name as Aliquot_Name, a.aliquot_type, au.u_step_yield as Step_Yield, au.u_step_concentration as Step_Concentration, au. u_pooled_plasma_volume as Pooled_Plasma_volume 
from aliquot a 
join aliquot_user au on a.aliquot_id = au.aliquot_id 
join sample s on s.sample_id = a.SAMPLE_ID 
where a.aliquot_type in ('DNA Extracted', 'Library', 'Target Enrichment', 'DNA Plasma') 
order by s.name desc, a.aliquot_type, a.name, au.u_step_yield, au.u_step_concentration, au.u_pooled_plasma_volume; 
CRF ALIQUOT_NAME ALIQUOT_TYPE STEP_YIELD STEP_CONCENTRATION POOLED_PLASMA_VOLUME 
CRF007650 PE-0046758 DNA Plasma   10 
CRF007650 LCNL-47275 Library 2,178 36 
CRF007650 HCNLS-47467 Target Enrichment 105 2 
CRF007649 1146667362 DNA Extracted 451 6 
CRF007649 PE-0046774 DNA Plasma   10 
CRF007649 LCNL-47291 Library 3,543 59 
CRF007649 HCNLS-47483 Target Enrichment 132 2 
CRF007648 1146668498 DNA Extracted 166 2 
CRF007648 PE-0046755 DNA Plasma   9 
CRF007648 LCNL-47272 Library 3,881 65 
CRF007648 HCNLS-47463 Target Enrichment 381 6 
CRF007647 1146635220 DNA Extracted 29 0 
CRF007647 PE-0046764 DNA Plasma   8 
CRF007647 LCNL-47281 Library 1,274 21 
CRF007647 HCNLS-47473 Target Enrichment 57 1 
CRF007646 1146736347 DNA Extracted 67 1 

回答

0

我认为你必须更加具体。 没有表格的信息。这是PK,哪些不是。 现在我只能说,如果你想压平行,你必须加入同一张桌子。 如果你想用查询得到答案,你必须编写你的表格信息,其他人可以帮助人们回答你的问题。

+0

有正在使用的3台分装,Aliquot_User和样品。 Aliquot和Aliquot_USER表上的主键是Aliquot ID,样品表上的主键是SAMPLE_ID。 Aliquot和Aliquot_User是系统上的一个给定系统的孩子,他们有样品ID信息。 – riten

0

据我了解你的数据,你在表格a中有4个不同的a.aliquot_type('DNA Extracted','Library','Target Enrichment','DNA Plasma')。并且你想给4列提供相应的Aliquot_Name(一个用于'DNA Extracted'等)。

你可以使用4列与子查询你来自哪里等分读取相应的数据,因此你必须退出加盟

a.aliquot_id = au.aliquot_id 

例如:

select s.name as CRF, (select a.aliquot_type from aliquot where a.aliquot_type = 'DNA Extracted' and ....) col1, (select a.aliquot_type from aliquot where a.aliquot_type = 'Library' and ....) col2, ...