0
我有以下scrip和开始计算返回相同的值,它显示它不是在分组之后。我为每所学校返回27。所有4个计算都是一样的。当我手动查询数据以检查值时,它会返回正确的数据。这一定是我做计算的方式。这是按照等级统计学生人数和每个熟练程度。有什么建议么。你这个人很棒。计算错误没有返回正确的值
SELECT DISTINCT
t.descript,
t.schoolc AS School,
-- s.ident AS StdID,
--ze.descript,
st.grdlvl,
-- st.takendt,
--CASE td.subtestc WHEN 'LI' THEN 'CELDT Listening' WHEN 'RD' THEN 'CELDT Reading' WHEN 'SP' THEN 'CELDT Speaking' WHEN 'WR' THEN 'CELDT Writing' WHEN
-- 'TO' THEN 'CELDT Overall' ELSE '' END AS ELDassessment,
CASE st.testscore WHEN '1' THEN 'BE' WHEN '2' THEN ' EI' WHEN '3' THEN 'IN' WHEN '4' THEN 'EA' WHEN '5' THEN 'AD' ELSE '' END AS ProfLevel,
sum (CASE WHEN (st.testscore) IN ('1') THEN 1 ELSE 0 END) AS [Beginning],
sum((CASE WHEN (st.testscore) IN ('2') THEN 1 ELSE 0 END)) AS [Early Intermediate],
SUM(CASE WHEN (st.testscore) IN ('3') THEN 1 ELSE 0 END) AS [Intermediate],
SUM(CASE WHEN (st.testscore) IN ('4') THEN 1 ELSE 0 END) AS [Early Advanced],
SUM(CASE WHEN (st.testscore) IN ('5') THEN 1 ELSE 0 END) AS [Advanced]
FROM dbo.stustat AS s INNER JOIN
dbo.track AS t ON s.trkuniq = t.trkuniq INNER JOIN
dbo.stutests AS st ON s.suniq = st.suniq INNER JOIN
dbo.xstutests AS xst INNER JOIN
dbo.codeassoc AS ca3 ON xst.scrsource = ca3.zcode ON st.ststuniq = xst.ststuniq INNER JOIN
dbo.testval AS tv INNER JOIN
dbo.testdef AS td INNER JOIN
dbo.ztest AS zt INNER JOIN
dbo.codeassoc AS ca1 ON zt.testc = ca1.zcode ON td.testc = zt.testc INNER JOIN
dbo.zsubtest AS zst ON td.subtestc = zst.subtestc AND td.testc = zst.testc ON td.testuniq = tv.testuniq INNER JOIN
dbo.ztscrtyp AS ztscr INNER JOIN
dbo.codeassoc AS ca2 ON ztscr.tscrtypc = ca2.zcode ON tv.tscrtypc = ztscr.tscrtypc ON st.testuniq = tv.testuniq AND st.tscrtypc = tv.tscrtypc
INNER JOIN studemo sd ON s.ident=sd.ident
INNER JOIN dbo.zethnic ze ON sd.ethnicc=ze.ethnicc
WHERE
--(st.takendt >= '2013-07-01')
(tv.tscrtypc = 'A')
AND (td.subtestc IN ('TO'))
--AND (t.schoolc IN ('32'))
AND t.trkuniq NOT BETWEEN '1'AND '1000066'
AND t.trkuniq NOT BETWEEN '1000134' AND '1000156'
-- AND grdlvl ='0'
--AND (st.testscore) IN ('1')
GROUP BY
t.descript,
td.subtestc,
st.testscore,
t.schoolc ,
s.ident ,
--ze.descript,
st.grdlvl
-- st.takendt
ORDER BY t.descript, t.schoolc,st.grdlvl
你在testscore上有一个聚合,但你也在你的组中。您可能需要查看您的案例表达式中的MAX(testscore),并将其从组中删除。 – 2014-09-05 18:24:04
我们是否应该知道**哪个**计算给出了错误的值?以及这里的“错误值”是什么意思? – Lamak 2014-09-05 18:24:22
抱歉,所有的数据都给出了错误的数据。他们返回的值大部分是27或54。当检查原始数据时,它应该是5 – 2014-09-05 18:27:36