【发布时间】:2013-04-29 12:02:09
【问题描述】:
对于学校,我需要从所有这些值的平均值中减去表中特定条目子集的平均值:
我要减法
SELECT AVG(gehalt) FROM mitarbeiter WHERE personalnummer IN (SELECT personalnummer FROM zertifiziert)
来自
SELECT AVG(gehalt) FROM mitarbeiter
这些陈述单独有效,但我试图减去它们
SELECT (SELECT AVG(gehalt) FROM mitarbeiter) - (SELECT AVG(gehalt) FROM mitarbeiter WHERE personalnummer IN (SELECT personalnummer FROM zertifiziert))
和
SELECT mige-pige AS differenz FROM ((SELECT SUM(gehalt) AS mige FROM mitarbeiter) UNION (SELECT SUM(gehalt) AS pige FROM mitarbeiter WHERE personalnummer IN (SELECT personalnummer FROM zertifiziert)))
没有,因为 DB2 得到了意外的令牌。我意识到这两个很可能是胡言乱语,正确的做法是什么?
【问题讨论】:
-
您的第一个查询是正确的,我已经检查过了,请您发布哪个错误 db2 返回。出于测试目的,我检查了您在 SQL Server 中的第一个查询。
-
感谢您的检查!
DB2 => SELECT (SELECT AVG(gehalt) FROM mitarbeiter) - (SELECT AVG(gehalt) FROM mitarbeiter WHERE personalnummer IN (SELECT personalnummer FROM zertifiziert)) SQL0104N Auf "FROM zertifiziert))" folgte das unerwartete Token "END-OF-STATEMENT". Zu den möglichen Token gehören: "<table_expr>". SQLSTATE=42601是德语,但我认为它明白了 -
SQL0104N Auf "FROM zertifiziert))" ?
-
这是什么?这是查询的一部分吗?
-
是的,查询到此结束。它基本上说“在'...zertifiziert))'之后有意外的令牌“END-OF-STATEMENT”。可能的令牌是'
'。SQLSTATE=42601"