Php Diplay table-SQL MAX()函数的最新记录

Php Diplay table-SQL MAX()函数的最新记录,php,sql,sql-server,Php,Sql,Sql Server,最终代码: $querySelect = "SELECT A.IdCliente, A.Data, A.IdPontos FROM $tabela AS A INNER JOIN ( SELECT MAX(IdPontos) [ID] FROM $tabela WHERE IdCliente = $cliente2 AND IdPontos = $voucher )

最终代码:

$querySelect = "SELECT A.IdCliente, A.Data, A.IdPontos 
                FROM $tabela AS A INNER JOIN ( SELECT MAX(IdPontos) [ID] 
                FROM $tabela 
                WHERE IdCliente = $cliente2 AND IdPontos = $voucher ) 
                AS B ON B.ID = A.IdPontos
                ";

$resultSelect = mssql_query($querySelect) or die('Erros querying MSSQL SELECT');

//Show result
    while ( $record = mssql_fetch_array($resultSelect) )
{
    echo $record["IdCliente"] . ' - Código do Cliente<br />';
    echo $record["IdPontos"] . ' - Número do voucher do cliente<br />';
}
我没有显示数组的值,它们没有出现

代码:

$resultSelect=mssql_query($querySelect)或die('Erros querying mssql SELECT');
//显示结果
而($record=mssql\u fetch\u数组($resultSelect))
{
echo$resultSelect[“IdCliente”]。-Código do Cliente
; echo$resultSelect[“IdPontos”]。-Número do凭证do cliente
; }

谢谢大家!

使用
排序依据
前1名

SELECT TOP 1 a.*
FROM $tabela a
WHERE a.IdCliente = $cliente2 AND a.IdPontos = $voucher
ORDER BY IdPontos DESC;

我确实觉得奇怪,您只有一个
IdPontos
值。可能还有另一个字段确定“最后一行”。

使用
排序依据和
顶部1

SELECT TOP 1 a.*
FROM $tabela a
WHERE a.IdCliente = $cliente2 AND a.IdPontos = $voucher
ORDER BY IdPontos DESC;

我确实觉得奇怪,您只有一个
IdPontos
值。可能还有另一个字段确定“最后一行”。

如果使用的聚合函数没有group by,则它假定它适用于所有行。由于您已添加了IdCliente和Data列,因此需要一个group by:

        SELECT IdCliente, Data, MAX(IdPontos)
        FROM $tabela 
        WHERE IdCliente = $cliente2
        AND IdPontos = $voucher
        GROUP BY IdCliente, Data

但这将显示比您需要的更多的行。因此,您可以加入IdPontos以获得这些,或者按照建议使用前1名

如果使用不带group by的聚合函数,则它假定它适用于所有行。由于您已添加了IdCliente和Data列,因此需要一个group by:

        SELECT IdCliente, Data, MAX(IdPontos)
        FROM $tabela 
        WHERE IdCliente = $cliente2
        AND IdPontos = $voucher
        GROUP BY IdCliente, Data

但这将显示比您需要的更多的行。因此,您可以加入IdPontos以获得这些,或者按照建议使用前1名

如何定义“最后一行”。您的查询仅选择了一个
idpantos
值,但这似乎是您想要的最大值。每个插入都有一个数字,最后一条记录是较高的数字。如何定义“最新一行”。您的查询仅选择了一个
idpantos
值,但这似乎是您想要的最大值。每个插入都有一个数字,最后一条记录是较高的数字。使用此代码,我仍然可以获取用户的所有记录。不过,还是要谢谢你!我会尝试前1个选项。你会的,按照组员。你只需要返回我想要的最大值,然后返回以获取所需的数据,因此你只需查看一条记录。我不知道如何返回/选择此最大值(IdPontos)。你能告诉我吗?@llanFidelisToledo尝试这样做:选择A.IdCliente,A.Data FROM$tabela作为内部连接(从$tabela中选择MAX(IdPontos)[ID],其中IdCliente=$client2和IdPontos=$concedure)作为B ON B.ID=A.IdPontos非常有效,谢谢你!我只需再添加一列来选择A.IdPontos。使用此代码,我仍然可以获取用户的所有记录。不过,还是要谢谢你!我会尝试前1个选项。你会的,按照组员。你只需要返回我想要的最大值,然后返回以获取所需的数据,因此你只需查看一条记录。我不知道如何返回/选择此最大值(IdPontos)。你能告诉我吗?@llanFidelisToledo尝试这样做:选择A.IdCliente,A.Data FROM$tabela作为内部连接(从$tabela中选择MAX(IdPontos)[ID],其中IdCliente=$client2和IdPontos=$concedure)作为B ON B.ID=A.IdPontos非常有效,谢谢你!我只需再添加一列来选择A.IdPontos.It。但是它仍然没有显示数组的值。有什么想法吗?成功了。但是它仍然没有显示数组的值。有什么想法吗?