INSERT INTO HospitalStat_tb
(
ID,
ProvinceId,
CityId,
CountyId,
HospitalId,
[1],
[2],
[3],
[4],
[5],
[6],
[7],
[8],
[9],
[10],
[11],
[12],
[13],
[14],
[15],
[16],
[17],
[18],
[19],
[20],
[21],
[22],
[23],
[24],
[25]
)
With Test(Scores,MeasureTarget3Id,Id)as (
SELECT CONVERT(float,sum(Scores))/count(DISTINCT(Answer_tb.UserId)) AS Scores, dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
FROM dbo.Answer_tb INNER JOIN
dbo.Examination_tb ON dbo.Answer_tb.ExaminationId = dbo.Examination_tb.ExaminationId
JOIN Hospital_tb ON Hospital_tb.HospitalId = dbo.Examination_tb.HospitalId INNER JOIN
dbo.ExaminationChange_tb ON dbo.Answer_tb.ExaminationChangeId = dbo.ExaminationChange_tb.ExaminationChangeId LEFT OUTER JOIN
dbo.MeasureTarget3_tb ON dbo.Examination_tb.MeasureTarget3Id = dbo.MeasureTarget3_tb.MeasureTarget3Id
WHERE Type=1 and CountyId=1 AND Scores>0
GROUP BY dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
)
SELECT * FROM Test PIVOT (sum(scores) FOR MeasureTarget3Id IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25])) AS T
With Test(Scores,MeasureTarget3Id,Id)as (
SELECT CONVERT(float,sum(Scores))/count(DISTINCT(Answer_tb.UserId)) AS Scores, dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
FROM dbo.Answer_tb INNER JOIN
dbo.Examination_tb ON dbo.Answer_tb.ExaminationId = dbo.Examination_tb.ExaminationId
JOIN Hospital_tb ON Hospital_tb.HospitalId = dbo.Examination_tb.HospitalId INNER JOIN
dbo.ExaminationChange_tb ON dbo.Answer_tb.ExaminationChangeId = dbo.ExaminationChange_tb.ExaminationChangeId LEFT OUTER JOIN
dbo.MeasureTarget3_tb ON dbo.Examination_tb.MeasureTarget3Id = dbo.MeasureTarget3_tb.MeasureTarget3Id
WHERE Type=1 and CountyId=1 AND Scores>0
GROUP BY dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
)
SELECT * FROM Test PIVOT (sum(scores) FOR MeasureTarget3Id IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25])) AS T
这个sql是正确的,能查询出来数据错误提示如下:请高手帮忙看看,谢谢了
解决方案 »
- 高手请进
- 希望广大SQL高手来帮你探讨一下这条SQL语句。探讨完毕就结贴。谢!
- 请教:、在SQL Server 数据库中,有一个表StudentAchievement(学生成绩),它有三个字段:StudentID(varchar(8),学生编号),CourseID(var
- ODBC.NET 执行带参INSERT SQL成功,但执行带参UPDATE失败?高手请进!
- 6.5数据库中的系统表
- 救命啊~~ 谁能帮我一把?数据插入不了表的问题
- 关于一个LOCAL/WEB方案的咨询
- 如何得到当前日期前一天的零时零分零秒及当前日的零时零分零秒
- 谁能告诉我EasyBase是?????
- sql server 执行链接服务器上的存储过程
- 数据库恢复的问题
- 这条SQL语句怎么写呢?急~~~,在线等
SELECT CONVERT(float,sum(Scores))/count(DISTINCT(Answer_tb.UserId)) AS Scores, dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
FROM dbo.Answer_tb INNER JOIN
dbo.Examination_tb ON dbo.Answer_tb.ExaminationId = dbo.Examination_tb.ExaminationId
JOIN Hospital_tb ON Hospital_tb.HospitalId = dbo.Examination_tb.HospitalId INNER JOIN
dbo.ExaminationChange_tb ON dbo.Answer_tb.ExaminationChangeId = dbo.ExaminationChange_tb.ExaminationChangeId LEFT OUTER JOIN
dbo.MeasureTarget3_tb ON dbo.Examination_tb.MeasureTarget3Id = dbo.MeasureTarget3_tb.MeasureTarget3Id
WHERE Type=1 and CountyId=1 AND Scores>0
GROUP BY dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
)
SELECT * into HospitalStat_tb FROM Test PIVOT (sum(scores) FOR MeasureTarget3Id IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25])) AS T这样吧
ID,
ProvinceId,
CityId,
CountyId,
HospitalId,
[1],
[2],
[3],
[4],
[5],
[6],
[7],
[8],
[9],
[10],
[11],
[12],
[13],
[14],
[15],
[16],
[17],
[18],
[19],
[20],
[21],
[22],
[23],
[24],
[25]
)
SELECT * FROM (
SELECT CONVERT(float,sum(Scores))/count(DISTINCT(Answer_tb.UserId))
AS Scores, dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
FROM dbo.Answer_tb INNER JOIN
dbo.Examination_tb ON dbo.Answer_tb.ExaminationId = dbo.Examination_tb.ExaminationId
JOIN Hospital_tb ON Hospital_tb.HospitalId = dbo.Examination_tb.HospitalId INNER JOIN
dbo.ExaminationChange_tb ON dbo.Answer_tb.ExaminationChangeId = dbo.ExaminationChange_tb.ExaminationChangeId LEFT OUTER JOIN
dbo.MeasureTarget3_tb ON dbo.Examination_tb.MeasureTarget3Id = dbo.MeasureTarget3_tb.MeasureTarget3Id
WHERE Type=1 and CountyId=1 AND Scores>0
GROUP BY dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
) as Test PIVOT (sum(scores) FOR MeasureTarget3Id IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25])) AS T
SQL code
With Test(Scores,MeasureTarget3Id,Id)as (
SELECT CONVERT(float,sum(Scores))/count(DISTINCT(Answer_tb.UserId)) AS Scores, dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
FROM dbo.Answer_tb INNER JOIN
dbo.Examination_tb ON dbo.Answer_tb.ExaminationId = dbo.Examination_tb.ExaminationId
JOIN Hospital_tb ON Hospital_tb.HospitalId = dbo.Examination_tb.HospitalId INNER JOIN
dbo.ExaminationChange_tb ON dbo.Answer_tb.ExaminationChangeId = dbo.ExaminationChange_tb.ExaminationChangeId LEFT OUTER JOIN
dbo.MeasureTarget3_tb ON dbo.Examination_tb.MeasureTarget3Id = dbo.MeasureTarget3_tb.MeasureTarget3Id
WHERE Type=1 and CountyId=1 AND Scores>0
GROUP BY dbo.MeasureTarget3_tb.MeasureTarget3Id, Examination_tb.HospitalId
)
SELECT * FROM Test PIVOT (sum(scores) FOR MeasureTarget3Id IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25])) AS T