Sql 如何进行求和+;顶部+;是否从同一查询中的另一个表中获取值?
考虑到这种结构,我想根据LineaVenta中销售的公斤数(我也想显示),获得销量最高的IdProducto,即他们的NomProducto(Productos表中的名称) 我试过几条指令,但都没有达到我想要的效果: 除了这个,我什么都有: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
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
。这里有几个RDBMSSQL Server
,Oracle
,Mysql
,DB2
,Postgres
,等等的例子。我已经编辑了您的答案,将NomProducto添加到answer@sagi . . . 谢谢你。谢谢sagi,但是vb说查询中有问题时出现了某种错误。我发现了公斤的l前缀应该是v,不是吗?但是仍然不工作:/@ArturAlvaro-你说不工作是什么意思。你有什么错误吗是的@ArturAlvaro应该是v