Sql 如何按簇求和并查找附加值

Sql 如何按簇求和并查找附加值,sql,sql-server,join,group-by,left-join,Sql,Sql Server,Join,Group By,Left Join,我目前正在学习SQL,有以下问题,应该很容易解决,但仍然没有成功: 我有两个表:交易和网站。“交易记录”表中包含所有我的订单条目,“站点”表中包含有关我的生产站点的信息。现在,我想对该站点聚集的所有销售额进行汇总,然后显示一个表,在该表中可以看到不同的站点、每个站点的销售额以及该站点的地址。由于某种原因,最后一步不起作用。它只在Adress列中显示“Null”值。当我选择FullOuterJoin时,它会显示地址,但不是在相应的行中,而是在后面的行中,其他两列随后被标记为Null。 有什么想法吗

我目前正在学习SQL,有以下问题,应该很容易解决,但仍然没有成功: 我有两个表:交易和网站。“交易记录”表中包含所有我的订单条目,“站点”表中包含有关我的生产站点的信息。现在,我想对该站点聚集的所有销售额进行汇总,然后显示一个表,在该表中可以看到不同的站点、每个站点的销售额以及该站点的地址。由于某种原因,最后一步不起作用。它只在Adress列中显示“Null”值。当我选择FullOuterJoin时,它会显示地址,但不是在相应的行中,而是在后面的行中,其他两列随后被标记为Null。 有什么想法吗

 SELECT Transactions.Site, SUM(Transactions.Sales) AS [Sales_per_Site], 
 Sites.Adress
 From Transactions
 LEFT JOIN Sites ON Transactions.Site=Sites.Site
 Group by Transactions.Site, Sites.Adress
 ORDER BY Transactions.Site DESC

 Site   Sales     Adress
 5      16042772    NULL
 4      13163942    NULL
 3      14476761    NULL
 2      15912831    NULL
 1      13735548    NULL
当我选择完全外部联接时,它确实会显示地址,但不会显示内部 对应的行,但在后面的行中,其他两个 然后将列标记为Null

这几乎肯定意味着您的两个表在您要加入的列上彼此不相关:
Transactions.Site=Sites.Site


如果您在两个表中都看到站点1-5,那么可能是因为列中有空格或其他原因导致两侧实际上不相等

编辑问题添加一些示例数据和期望的结果会有帮助。您确定Sites.Address不为空吗?它也可以是您离开加入时的加入。你确定两个表中的站点是相同的吗?嗨!是的,每五个站点的地址列中都有值。期望的结果将是实际地址,而不是“NULL”是的,它是相同的,事务表和站点表中从1到5的站点,都在列Site中您是对的,在一个表中,“Site”格式为数值,在另一个表中格式为varchar…将它们都转换为整数转换(t1.Site as int)=转换(t2.Site as int)