返回0,当我运行此查询:总和在钱列
SELECT [id],[amount],sum(amount) as Total
FROM transaction
where id='035'
group by id, amount
我得到一些结果一样
id amount Total
035 -55115.24 -55115.24
035 -2126.14 -2126.14
然而,当我试图得到一个总(为amount
列)使用这个查询;
select id, count(*) as howMany, sum(amount) as Total
from transaction
where id='035'
group by id
order by count(*) desc
我得到这些结果。
id howMany Total
035 2 0.00
我希望得到
id howMany Total
035 2 -057241.38
我试图简化查询,不计,只是为了检查和工作
select id, sum(amount) as Total
from transaction
where id='035'
group by id
但同样这给me 0 as total total
id Total
035 0.00
我也试过这个id,它们的金额列中有正值,但是得到相同的行为。为了说明问题,我希望整个表格中的每个id
的amount
列中的值的总数不仅仅是每行,而且在SQL中使用SUM
函数时只能得到零。
我注意到的另一件事,id
列是nvarchar
,而不是表的ID /密钥。这是一个旧数据库,由于某种原因,它支持仅通过主键链接nvarchars。我无法更改表格结构。
架构
CREATE TABLE [dbo].[transaction](
[trindex] [int] IDENTITY(1,1) NOT NULL,
[id] [varchar](15) NULL,
[date] [datetime] NULL,
[amount] [money] NULL,
[acct] [varchar](20) NULL
)
你运行SQL Server Management Studio中的这个查询还是通过一个应用程序?我的第一个猜测是应用程序正在改变价值。 –
我正在通过SSMS运行。该应用程序将不会改变这些值 –
你从一个简单的SQL得到什么: SELECT [ID],[金额] 从交易 其中id =“035” ,哪些数据类型是多少? – SAS