1
我知道在stackoverflow上有很多枢轴示例,我可以理解它们,但是现在我有一个问题,我无法解决,因为与其他问题不同,请我可以接受您标记此作为问题重复或降低我的成绩,但我需要一个asnwer,我需要转动此表在SQL上使用数据透视表
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
其中No_Diagnostico是从医生的注释如果Fl_diagnostico为1(表示true),还是应该说“不”,如果No_Diagnostico为NULL
但它返回一个重复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和动态查询
这是正确的,你可以在这个[fiddle](http://sqlfiddle.com/#!3/20cdd/10)看到一个OP的查询修改版本 – paqogomez 2014-12-03 20:48:58
更多的kludgy版本将由'Co_ordenAt '并在外部查询中的所有enfermedades上选择max。 – paqogomez 2014-12-03 20:50:22
工作完美,谢谢你们很多人 – 2014-12-03 21:02:15