我有record_id
和record_value
的桌子。查询应返回所有ID和值,但同时我需要返回特定ID组的总和。这是我的数据示例:
record_id record_value
54 3
56 0
78 11
98 7
103 1
78 0
44 0
67 1
68 3
69 1
查询我是否返回带有ID和值的行。我想在查询结果中也获得其中一些列。这是我尝试过的:
SELECT
record_id,
record_value
CASE
WHEN record_id IN ('54','56','67','68','69') THEN SUM(record_value)
ELSE ''
END AS RowSum
FROM Records
RowSum应该返回19
,但我收到一个错误消息:
SQL Error [257] [37000]: Implicit conversion from datatype 'VARCHAR' to 'NUMERIC' is not allowed. Use the CONVERT function to run this query.
我将Sybase
数据库与DBeaver
一起使用。
答案 0 :(得分:1)
您可能使用的代码是:
SELECT
record_id,
record_value,
FROM Records
union all
select null,
CASE
WHEN record_id IN ('54','56','67','68','69') THEN convert(varchar, SUM(record_value))
ELSE ''
END AS RowSum