供应商/供应商需要最新输入发票的日期

时间:2018-04-03 16:46:23

标签: sql db2

此查询有效。我试图在我们的系统中找到最近的文档输入日期。 下面的查询提供了日期和供应商编号,并且工作正常。

SELECT SUPPLIERNUMBER, MAX(DATEOFINPUT)
FROM TABLE A
WHERE COUNTRY IN ('661')
AND COMPANY IN ('01','40')
GROUP BY SUPPLIERNUMBER

现在,这些信息本身就很好,但我还需要在另一个表B(保存来自供应商的信息,如姓名,短名称,银行数据等)中的其他信息< / p>

SELECT B.COUNTRY , B.COMPANY ,B.SUPPLIERNUMBER, 
B.SUPPLIERNAME, A.DATEOFINPUT
FROM A
INNER B
ON A.COUNTRY =B.COUNTRY 
AND A.COMPANY =B.COMPANY 

这里是我不知道如何将2个查询混合在一起的地方。我理解我需要从第一个查询2列信息:SupplierNumber和DateofInput。 有了这些信息,我必须与另一张表一起获取供应商信息。

我不知道该怎么做。我以为我必须使用MAX(DateofInput)做一个子查询,但这样只会带来几个具有相同日期的1条记录,但是无法再带上SupplierNumber。

你能帮助我吗?

这适用于DB2,也许某些SQL语法不起作用,不确定。

我只有用户权限,而不是管理员权限。

1 个答案:

答案 0 :(得分:0)

将SUPPLIER表(B)中的数据字段合并到SELECT中,并将它们包含在GROUP BY子句中:

SELECT A.SUPPLIERNUMBER,
       B.SUPPLIERNAME, B.COUNTRY, B.COMPANY, MAX(DATEOFINPUT) AS MAXDATE
FROM TABLE A
INNER JOIN SUPPLIER B
ON A.SUPPLIERNUMBER = B.SUPPLIERNUMBER
WHERE A.COUNTRY IN ('661')
AND A.COMPANY IN ('01','40')
GROUP BY A.SUPPLIERNUMBER, B.SUPPLIERNAME, B.COUNTRY, B.COMPANY