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。但是它仍然没有显示数组的值。有什么想法吗?成功了。但是它仍然没有显示数组的值。有什么想法吗?