【发布时间】:2018-06-25 07:42:12
【问题描述】:
我有两张表如下:
合同
|
签约用户
我的工作是从 Contractuser 表中获取每个合同编号的最新发票日期并显示结果。结果表如下:
结果表
现在我想要一个自动增量列显示为我的结果集中的第一列。
我使用了以下查询:
SELECT @i:=@i+1 AS Sno,a.ContractNo,a.SoftwareName,a.CompanyName,b.InvoiceNo,b.InvoiceDate,
b.InvAmount,b.InvoicePF,max(b.InvoicePT) AS InvoicePeriodTo,b.InvoiceRD,b.ISD
FROM contract as a,contractuser as b,(SELECT @i:=0) AS i
WHERE a.ContractNo=b.ContractNo
GROUP BY b.ContractNo
ORDER BY a.SoftwareName ASC;
但似乎自动递增是在 group by 过程之前执行的,因为序列号以非连续方式显示。
【问题讨论】:
-
您无法真正完成这项工作,因为它确实会评估每一行的变量。您需要的是一个子查询来处理分组,然后将增量加入结果。
-
为了将来参考,最好以纯文本格式提供您的数据,因为如果有人想尝试复制您的源数据/结果,复制/粘贴它会更容易。
-
+user2366842 注意点
标签: mysql sql group-by auto-increment