【发布时间】:2014-12-03 20:21:33
【问题描述】:
我知道 stackoverflow 上有很多支点示例,我可以理解它们,但现在我有一个我无法解决的问题,因为与其他问题不同,请我可以接受您将此问题标记为重复或降低我的分数,但我需要一个答案,我需要旋转这个表
Co_ordenAt Co_EnfermedadPatologica No_NombreEnfPatologica Fl_Diagnostico
--------------------------------------- --------------------------------------- ----------------------------------------------------------------------------
83412520141 1 Alergias 1
83412520141 2 Asma 1
83412520141 3 Bronquitis 0
83412520141 4 Diabetes 0
83412520141 5 HTA 1
83412520142 1 Alergias 0
83412520142 2 Asma 0
83412520142 3 Bronquitis 0
83412520142 4 Diabetes 1
83412520142 5 HTA 0
像这张桌子一样
Co_ordenAt Alergia Asma Bronquitis Diabetes HTA
--------------------------------------- --------------------------------------- ----------------------------------------------------------------------------------------------------------------------
83412520141 Peanuts "observasion" 0 0 "observasion"
83412520142 0 0 0 "observasion" 0
我试过这个代码
SELECT [Co_ordenAt], [Alergia], [Asma] ,[Bronquitis],[Diabetes],[ HTA]
from
(
SELECT Co_ordenAt,( CASE WHEN No_Diagnostico='' THEN 'No' ELSE No_Diagnostico END ) as Diagnositco, Co_EnfermedadPatologica, No_NombreEnfPatologica, Fl_Diagnostico, T_AntecedentePersonal.No_Diagnostico
FROM
[dbo].[T_AntecedentePersonal] INNER JOIN T_EnfermedadPatologica
ON T_AntecedentePersonal.Co_EnfermedadPatologica = T_EnfermedadPatologica.Co_EnfedadPatologica
WHERE Co_ordenAt in (83412520141,83412520142)
) x
pivot
(
max(Diagnositco)
FOR No_NombreEnfPatologica in( [Alergia], [Asma] ,[Bronquitis],[Diabetes],[ HTA])
)p
如果 Fl_diagnostico 为 1(表示为真),No_Diagnostico 是医生的评论,如果 No_Diagnostico 为 NULL,则它应该说“No”
但它返回一个重复的 Co_ordenAt,与第一个表一样,但包含我指定的列,除了具有 Co_enfermedadPatologica 的列(如第一个表)之外,所有列都显示为空
83412520141 1 PEANUT NULL NULL NULL NULL
83412520141 2 NULL OBV NULL NULL NULL
83412520141 3 NULL NULL NO NULL NULL
83412520141 4 NULL NULL NULL NO NULL
83412520141 5 NULL NULL NULL NULL OBV
83412520142 1 NO NULL NULL NULL NULL
83412520142 2 NULL NO NULL NULL NULL
83412520142 3 NULL NULL NO NULL NULL
83412520142 4 NULL NULL NULL OBV NULL
83412520142 5 NULL NULL NULL NULL NO
我只希望 Co_OrdenAt 将所有内容放在一行中,但我已经尝试了很多代码,即使是 XML 和动态查询也是如此
【问题讨论】:
标签: sql sql-server pivot pivot-table