Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何选择发票金额最大的客户名称_Mysql_Sql_Join_Greatest N Per Group - Fatal编程技术网

Mysql 如何选择发票金额最大的客户名称

Mysql 如何选择发票金额最大的客户名称,mysql,sql,join,greatest-n-per-group,Mysql,Sql,Join,Greatest N Per Group,我有两张桌子 Customers ---------------- ID | Name ----+----------- 123 | Name1 456 | Name2 789 | Name3 ---------------- Invoices ------------------ ID | Value ----+------------- 123 | 1000 456 | 500 789 | 1000 ------------------ 我想选择发票金额最大的客户名称我们也可以通

我有两张桌子

Customers
----------------
ID  | Name 
----+-----------
123 | Name1
456 | Name2
789 | Name3
----------------


Invoices
------------------
ID  | Value
----+-------------
123 | 1000
456 | 500
789 | 1000
------------------

我想选择发票金额最大的客户名称

我们也可以通过子查询获得结果。 将[]括号与值和名称一起使用。因为这是SQL server中的保留关键字

SELECT C.ID, C.[Name], I.[Value]
FROM Customers C WITH(NOLOCK)
JOIN (
       SELECT TOP 1 ID, [Value]
       FROM Invoices WITH(NOLOCK)
       ORDER BY [Value] DESC
      ) AS I
ON C.ID = I.ID

根据最大值进行测试

select c.name , i.value
from customers c
join invoices i on i.id = c.id
where i.value = (select max(value) from invoices);

+-------+-------+
| name  | value |
+-------+-------+
| Name1 |  1000 |
| Name3 |  1000 |
+-------+-------+
2 rows in set (0.001 sec)

您希望此示例数据的结果是什么?也,如果一个客户有多张发票,该怎么办?您是想得到排名靠前的客户,还是想得到多个发票金额按降序排序的客户?我想得到发票金额最高的客户名称在这种情况下,最高发票金额是1000,结果应该是name1和name3客户是否有多张发票如果其中一张发票等于最高发票金额,则应返回其姓名。您是否得到答复?您能告诉我您正在使用的MySQL版本吗?这是sqlserver对一个MySQL问题的回答-代码不可传输,您可能会因为前面提到的SQL和my SQL而遭到否决。请检查定义和他的注释@P.salmon请查看sql标记-这并不意味着OP正在使用sqlserver-即;这就是为什么标签可以更精确地识别问题所涉及的sql方言。如果OP想要sqlserver,那就有一个标签。它确实有用,谢谢