自从我开始学习pgsql以来已经有一段时间了,我正在尝试进行第一个项目(只是为了测试自己),并且一直在努力进行这项工作。
SELECT ((SELECT to_number(g.grade, '9D99') AS numgrade
FROM grade g, registration r
WHERE g.grade_id=r.grade_id
AND g.grade!='INC'
AND g.grade!='INP'
AND g.grade!='W'
AND g.grade!='DRP')*(SELECT s.subjunits
FROM subject s, registration r
WHERE s.subjcode=r.subjcode)) AS product
FROM subject s, registration r;
所以,我想做的就是将table中的列和table中的列相乘grade
(以防万一,您没有注意到, columngrade
是character
我放的原因to_char()
)。registration
subjunits
subject
我有点想出Postgres不允许多行相乘,或者也许不允许多行返回。无论哪种方式,我仍然想知道是否还有另一种方式获取我选择的行的乘积?
将每个主题放在该WHERE
子句中非常不便。
SELECT (to_number(g.grade, '9D99') * s.subjunits) AS product
FROM grade g, registration r, subject s
WHERE g.grade_id = r.grade_id
AND g.grade NOT IN ('INC', 'INP', 'W', 'DRP')
AND s.subjcode = r.subjcode;
您可能想在选择列表中添加学生编号。另外,如果您的g.grade类型更多,那么这里排除了四个,则为此添加一列;如果少于四个,则颠倒该子句:AND g.grade IN (...)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句