【发布时间】:2017-05-26 02:17:19
【问题描述】:
我的代码是:
,CASE WHEN ResidenceInd = 1 THEN 'Residence' ELSE 'Day' END AS ClassType
,sc.Score
,'1' AS IsLP
,IncludeInGraph
,LessonOrder
FROM (
SELECT
sc.SchoolId
,sc.StudentId
,sc.DSTempSetColCalcId
,dcal.CalcType
,hdr.LessonPlanId
,hdr.StdtClassId
,Cls.ResidenceInd
,dcal.IncludeInGraph
,DHDR.LessonOrder
FROM StdtSessColScore sc
INNER JOIN DSTempSetColCalc dcal
ON dcal.DSTempSetColCalcId = sc.DSTempSetColCalcId
INNER JOIN StdtSessionHdr hdr
ON hdr.StdtSessionHdrId=sc.StdtSessionHdrId
INNER JOIN Class Cls
ON Cls.ClassId=hdr.StdtClassId
INNER JOIN DSTempHdr DHDR
ON DHDR.DSTempHdrId=hdr.DSTempHdrId
WHERE
hdr.IOAInd='N'
AND hdr.SessMissTrailStus ='N'
AND hdr.SessionStatusCd='S'
AND (SELECT StatusId
FROM DSTempHdr DS
WHERE DS.DSTempHdrId = hdr.DSTempHdrId)
<>
(SELECT LookupId
FROM LookUp
WHERE LookupType = 'TemplateStatus'
AND LookupName='Deleted')
GROUP BY
DHDR.LessonOrder
,sc.SchoolId
,sc.StudentId
,sc.DSTempSetColCalcId
,dcal.CalcType
,hdr.LessonPlanId
,hdr.StdtClassId
,Cls.ResidenceInd
,dcal.IncludeInGraph
) AS StdCalcs
,ReportPeriod
WHERE
StdCalcs.StudentId=1240
AND CONVERT(DATE,'2016/01/02') <= CONVERT(DATE,ReportPeriod.PeriodDate)
AND CONVERT(DATE,ReportPeriod.PeriodDate) <= CONVERT(DATE,'2016/12/28')
AND sc.SchoolId = StdCalcs.SchoolId
AND sc.StudentId = StdCalcs.StudentId
AND sc.DSTempSetColCalcId = StdCalcs.DSTempSetColCalcId
AND CONVERT(DATE, Hdr.EndTs) = CONVERT(DATE, ReportPeriod.PeriodDate)
AND Hdr.LessonPlanId = StdCalcs.LessonPlanId
AND dcal.CalcType = StdCalcs.CalcType
AND Hdr.StdtClassId = StdCalcs.StdtClassId
AND Hdr.IOAInd = 'N' AND Hdr.SessMissTrailStus ='N'
AND Hdr.SessionStatusCd = 'S'
AND sc.Score >= 0
AND Hdr.IsMaintanace = 0
GROUP BY
代码继续……
我遇到了一个错误:
多部分标识符 sc.SchoolId,sc.StudentId,sc.DSTempSetColCalcId,Hdr.EndTs,Hdr.LessonPlanId,dcal.CalcType,Hdr.StdtClassId,Hdr.IOAInd,Hdr.SessMissTrailStus,Hdr.SessionStatusCd,sc.ScoreHdr.IsMaintanace无法绑定。
实际上我们如何解决它.. 我试图添加 sc.score 和
AND sc.SchoolId = StdCalcs.SchoolId
AND sc.StudentId = StdCalcs.StudentId
AND sc.DSTempSetColCalcId = StdCalcs.DSTempSetColCalcId
AND CONVERT(DATE, Hdr.EndTs) = CONVERT(DATE, ReportPeriod.PeriodDate)
AND Hdr.LessonPlanId=StdCalcs.LessonPlanId
AND dcal.CalcType = StdCalcs.CalcType
AND Hdr.StdtClassId = StdCalcs.StdtClassId
AND Hdr.IOAInd = 'N' AND Hdr.SessMissTrailStus = 'N'
AND Hdr.SessionStatusCd = 'S'
AND sc.Score >= 0
AND Hdr.IsMaintanace=0
感谢任何帮助
【问题讨论】:
-
这有帮助吗? stackoverflow.com/questions/206558/… 。很有可能是笔误。如果你更好地格式化你的代码,它可能更容易找到。我会重新格式化以帮助您。
-
哦,好吧,你重写了我的格式改进。这有点令人沮丧......
-
您不能在外部查询中使用内部查询别名 (
sc)。 -
对不起..只是误会。我该如何撤消@ADyson
-
@Binto,在您的问题中添加完整的错误消息。
标签: sql asp.net sql-server tsql