【发布时间】:2016-08-22 08:58:30
【问题描述】:
select sum(l.coins) - sum(t.coins) as total
from luxx_getaway_2016_coins l
join thrive_rewards_redeemed t
on l.consid = t.guideid
where l.consid = 24969 and t.harvestyear = 1516
大家好。我正在尝试使用上面的查询获取更新的总数。我遇到的问题是这些总和的总和远高于应有的水平。我不确定我做错了什么。我们使用 Azure SQL 数据库,我使用 RazorSQL 和 SSMS 2012 运行此查询,结果相同。任何帮助表示赞赏。请随时要求澄清。
【问题讨论】:
-
如果只选择行而不选择总和会返回什么?例如
select * from luxx_getaway_2016_coins l join thrive_rewards_redeemed t on l.consid = t.guideid where l.consid = 24969 and t.harvestyear = 1516 -
l.consid和t.guideid在各自的表中是唯一的吗?如果没有,您将在加入时获得重复。 -
@APH 两个表中所有字段的列表。我现在可以明白为什么我得到了我得到的总数。对于一个表中的每个行项目,都会为正在连接的表创建一个重复的行项目。因此,如果我在一个表中有 10 行,而在另一个表中有一行,则行数最少的那个需要产生与另一个表产生的行一样多的行。
-
@rdbradshaw 我现在意识到了这一点。感谢您指出这一点。
-
@rdbradshaw 在这些条件下在 sql server 中这是不可能的吗?
标签: sql-server tsql ssms azure-sql-database