我想要sum(t1+t2) as d
结果与group by tblpersonalInfo.applicantID
准确发布,但此查询显示我与tblpersonalInfo.applicantID
组的结果,但此查询显示结果递增。为什么这个sql查询不能准确传递结果?
回答
不是100%肯定你所有的查询,但听起来像是你可能需要UNION两个子查询到一个,那么你可以在SELECT
子句中总结...
SELECT sum(T) AS d,
Y.ApplicantId,
Y.Applicantname
FROM (
SELECT tblexperience.ApplicantId,
SUM(tblExpeRange.score)as T
FROM tblexperience
LEFT OUTER JOIN tblExpeRange
ON tblexperience.ExpRange=tblExpeRange.expeRange
GROUP BY tblexperience.ApplicantId
UNION
SELECT tblAcademicInfo.ApplicantId,
SUM(tblGradPoint.score) AS T
FROM tblAcademicInfo
LEFT OUTER JOIN tblGradPoint
ON tblAcademicInfo.cgpa=tblGradPoint.[cgpa/division]
GROUP BY tblAcademicInfo.ApplicantId
) X
INNER JOIN tblPersonalInfo Y
ON X.ApplicantId = Y.ApplicantId
INNER JOIN tblCircular Z
ON Y.Cirname = Z.Cirname --(*)
--WHERE Z.Cirname=(Y.Cirname) --.....maybe not required as the line above (*) deals with this
GROUP BY Y.ApplicantId,
Y.Applicantname
感谢重播..但我想总结两个疑问像sum(T + T)T是总和另一个值和另一个T是其他值 –
非常感谢你4ur帮助它真的工作..... –
没问题 - 很高兴我能帮上忙;现在工作好吗? – whytheq
你在子查询tblAcademicInfo
和tblexperience
之间没有任何关联,因此您要创建一个CROSS JOIN
,其中第一个值与第二个值中的每个值相加。也许你应该尝试加入ApplicantId
每个子查询选择列表,并用它在它们之间以及与tblPersonalInfo
SELECT DISTINCT
t1+t2,
tblPersonalInfo.ApplicantId,
tblPersonalInfo.Applicantname
FROM
(
SELECT
tblexperience.ApplicantId
,SUM(tblExpeRange.score)as t2
FROM tblexperience
LEFT OUTER JOIN tblExpeRange
ON tblexperience.ExpRange=tblExpeRange.expeRange
GROUP BY tblexperience.ApplicantId
) tblexperience,
INNER JOIN
(
SELECT
tblAcademicInfo.ApplicantId
,SUM(tblGradPoint.score) AS t1
FROM tblAcademicInfo
LEFT OUTER JOIN tblGradPoint
ON tblAcademicInfo.cgpa=tblGradPoint.[cgpa/division]
GROUP BY tblAcademicInfo.ApplicantId
) tblAcademicInfo ON tblAcademicInfo.ApplicantId = tblexperience.ApplicantId
INNER JOIN tblPersonalInfo ON tblexperience.ApplicantId = tblPersonalInfo.ApplicantId
INNER JOIN tblCircular
ON tblPersonalInfo.Cirname = tblCircular.Cirname
编辑加盟:同样,你不觉得这个查询看起来更具可读性,如果您使用公用表表达式和别名:
WITH CTE_Experience AS
(
SELECT
e.ApplicantId
,SUM(er.score) AS t2
FROM tblexperience e
LEFT JOIN tblExpeRange er ON e.ExpRange = er.expeRange
GROUP BY e.ApplicantId
)
,CTE_AcademicInfo AS
(
SELECT
ai.ApplicantId
,SUM(gp.score) AS t1
FROM tblAcademicInfo ai
LEFT JOIN tblGradPoint gp ON ai.cgpa = gp.[cgpa/division]
GROUP BY ai.ApplicantId
)
SELECT
ai.t1 + ex.t2,
pin.ApplicantId,
pin.Applicantname
FROM tblPersonalInfo pin
INNER JOIN CTE_Experience ex ON ex.ApplicantId = pin.ApplicantId
INNER JOIN CTE_AcademicInfo ai ON ai.ApplicantID = pin.ApplicantId
INNER JOIN tblCircular ci ON ci.Cirname = pin.Cirname
试试这个:
SELECT
tblPersonalInfo.ApplicantId,
tblPersonalInfo.ApplicantName,
(tblExperience.t2+tblAcademicInfo.t1) as d
FROM tblPersonalInfo
INNER JOIN (
SELECT SUM(tblExpeRange.score) as t2,
tblExperience.ApplicantId
FROM tblExperience
LEFT OUTER JOIN tblExpeRange
ON tblExperience.ExpRange=tblExpeRange.ExpRange
GROUP BY tblExperience.ApplicantId
)tblExperience ON tblPersonalInfo.ApplicantId=tblExperience.ApplicantId
INNER JOIN (
SELECT SUM(tblGradPoint.score) as t1,
tblAcademicInfo.ApplicantId
FROM tblAcademicInfo
LEFT OUTER JOIN tblGradPoint
ON tblAcademicInfo.cgpa=tblGradPoint.[cgpa/division]
GROUP BY tblAcademicInfo.ApplicantId
)tblAcademicInfo ON tblPersonalInfo.ApplicantId=tblAcademicInfo.ApplicantId
INNER JOIN tblCircular
ON tblPersonalInfo.Cirname=tblCircular.Cirname
- 1. 这个SQL查询为什么返回这个结果?
- 2. SQL - 为什么这3个查询的结果不加起来?
- 3. 查询结果不准确
- 4. 为什么这个SQL查询不能返回正确的行?
- 5. SQL:为什么我不能为查询结果设置变量?
- 6. SQL:为什么这些查询返回不同的结果?
- 7. 为什么ViewBag不能正确显示查询结果?
- 8. 为什么这个变量不能在JQuery中正确传递
- 9. 为什么这个SPARQL查询缺少这么多结果?
- 10. 为什么这个查询不返回结果?
- 11. 为什么这两个查询有不同的结果?
- 12. 为什么这个查询不返回任何结果
- 13. 为什么这个查询不产生mysql_error()结果?
- 14. 这个DL查询为什么不返回预期结果?
- 15. 为什么不用这个MySQL查询返回更多结果?
- 16. 这个LIKE查询为什么不返回任何结果?
- 17. 为什么这两个Cypher查询返回不同的结果?
- 18. 为什么这个PostgreSQL查询不显示“游戏”结果
- 19. Django模型查询结果不准确
- 20. 与MySql查询不准确的结果
- 21. 为什么这个MySQL查询不能正确计算行列?
- 22. 为什么这个参数化的sql查询不返回结果?
- 23. 为什么这个sql查询不能在pdo中工作?
- 24. 为什么这个SQL查询很慢?
- 25. 为什么这个SQL查询失败?
- 26. 这个SQL查询为什么错了?
- 27. 为什么这个MySQL查询只返回1个结果?
- 28. 这两个查询有什么区别?为什么不同的结果
- 29. 将SQL结果传递给第二个SQL查询
- 30. 什么是这个SQL查询的确切的LINQ查询?
为什么你必须注释掉的总和和组吗? – Barmar
在我试用之前 –
显示您遇到的实际查询问题,而不是大块注释掉的修改版本。无论如何,我怀疑问题是用'DISTINCT'。如果你正在分组,你不需要这个。 – Barmar