USE [dbHrm41All_ys]
GO
/****** Object: StoredProcedure [dbo].[Tra_Report_pEvalCourse] Script Date: 11/10/2011 11:09:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Tra_Report_pEvalCourse]
@BeginDate [varchar](32),
@EndDate [varchar](32),
@iStyle [varchar](32)
AS
CREATE TABLE #ResultTb
(
InfoID VARCHAR(32),
ClassID VARCHAR(32),
ClassCode VARCHAR(1024),
ClassName VARCHAR(1024),
CourseID VARCHAR(32),
CourseName VARCHAR(1024),
TeacherID VARCHAR(32),
TeacherName VARCHAR(1024),
TraAddress VARCHAR(1024),
OrganName VARCHAR(1024),
BeginDate DATETIME,
EndDate DATETIME,
LastAvgScore DECIMAL(18,4),
FinalImpressionID VARCHAR(32),
FinalImpressionName VARCHAR(1024),
FinalImpressionNumb INT,
)
INSERT INTO #ResultTb(InfoID,ClassID,ClassCode,ClassName,CourseID,CourseName,TeacherID,TeacherName,TraAddress,OrganName,BeginDate,EndDate,LastAvgScore,FinalImpressionID,FinalImpressionName)
SELECT A.InfoID, A.ClassID, A.ClassCode, A.ClassName, A.CourseID,A.CourseName, A.TeacherID, A.TeacherName,
A.TraAddress ,A.OrganName, A.BeginDate, A.EndDate, (CASE A.LastAvgScore WHEN '-9999.0000' THEN '0' ELSE A.LastAvgScore END), B.vID, B.vName
FROM Tra_Eval_tCourseInfo AS A
CROSS JOIN Dic_vFinalImpression AS B
WHERE A.EvalDate BETWEEN @BeginDate AND @EndDate
UPDATE #ResultTb SET FinalImpressionNumb = ISNULL((SELECT COUNT(1)
FROM Tra_Eval_tCourseStudent
WHERE InfoID = #ResultTb.InfoID
AND FinalImpressionID = #ResultTb.FinalImpressionID
),'0')
IF @iStyle = '0'
BEGIN
SELECT InfoID, ClassID, ClassCode, ClassName, CourseID, CourseName, TeacherID, TeacherName, TraAddress,
OrganName, CONVERT(VARCHAR(10),BeginDate,120) AS BeginDate, CONVERT(VARCHAR(10),EndDate,120) AS EndDate,
LastAvgScore, FinalImpressionID, FinalImpressionName, FinalImpressionNumb
FROM #ResultTb ORDER BY InfoID,FinalImpressionID
END
ELSE
BEGIN
SELECT FinalImpressionName,CourseName,FinalImpressionNumb FROM #ResultTb ORDER BY InfoID,FinalImpressionID
END
还有是在哪修改呢 是程序那需要定义数据类型 还是数据库呢?
追答先检查下数据库是否定义类型,如果没有就只有用程序定义数据类型了。