Sql 如何进行求和+;顶部+;是否从同一查询中的另一个表中获取值?

Sql 如何进行求和+;顶部+;是否从同一查询中的另一个表中获取值?,sql,sum,Sql,Sum,考虑到这种结构,我想根据LineaVenta中销售的公斤数(我也想显示),获得销量最高的IdProducto,即他们的NomProducto(Productos表中的名称) 我试过几条指令,但都没有达到我想要的效果: 除了这个,我什么都有: SELECT TOP 5 IdProducto, SUM(Kilos) FROM LineaVenta GROUP BY IdProducto ORDER BY SUM (Kilos) DESC 这个不行: SELECT TOP 5 LineaVe

考虑到这种结构,我想根据LineaVenta中销售的公斤数(我也想显示),获得销量最高的IdProducto,即他们的NomProducto(Productos表中的名称) 我试过几条指令,但都没有达到我想要的效果:

除了这个,我什么都有:

SELECT TOP 5 IdProducto, SUM(Kilos) 
FROM LineaVenta 
GROUP BY  IdProducto 
ORDER BY SUM (Kilos) DESC
这个不行:

SELECT TOP 5 LineaVenta.IdProducto, SUM(LineaVenta.Kilos), Productos.NomProducto
FROM LineaVenta, Productos
GROUP BY  LineaVenta.IdProducto
ORDER BY SUM (LineaVenta.Kilos) DESC

你只需要一个合适的
加入
。简单规则:不要在
FROM
子句中使用逗号。始终使用显式
JOIN
语法:

SELECT TOP 5 p.IdProducto, p.NomProducto, SUM(v.Kilos) 
FROM LineaVenta v JOIN
     Productos p
     ON v.IdProducto = p.IdProducto
GROUP BY p.IdProducto, p.NomProducto
ORDER BY SUM(v.Kilos) DESC;

您使用的数据库服务器是什么?@davejal没什么大不了的,可以使用最适合您的ANSI SQLdbms@sagi-OP使用了
TOP
关键字来限制结果集,其中TOP不是ANSI SQL关键字,因此我想OP需要澄清
RDBMS
Hi VR46,我正在使用visual studio和ADO.NETdataset@ArturAlvaro-这些不是
RDBMS
。这里有几个RDBMS
SQL Server
Oracle
Mysql
DB2
Postgres
,等等的例子。我已经编辑了您的答案,将NomProducto添加到answer@sagi . . . 谢谢你。谢谢sagi,但是vb说查询中有问题时出现了某种错误。我发现了公斤的l前缀应该是v,不是吗?但是仍然不工作:/@ArturAlvaro-你说不工作是什么意思。你有什么错误吗是的@ArturAlvaro应该是v