在Postgres中乘子查询

士勋

自从我开始学习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以防万一,您没有注意到, columngradecharacter我放的原因to_char()registrationsubjunitssubject

我有点想出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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章