Sql server 我需要显示给定产品的最高日期时间,但是,当我使用代码时,它会用两个不同的值显示同一产品两次
我来自巴西抱歉英语不好,我在用谷歌翻译 我需要显示给定产品的最高日期时间,但是,当我使用代码时,它会用两个不同的值显示同一产品两次 在这里: 进行选择以显示每个产品的最后一次移动,因为此移动为非零 显示按数量从高到低排序的记录 我只需要显示一个给定产品的日期时间,但是,它显示的是重复的和不同的日期时间 代码:Sql server 我需要显示给定产品的最高日期时间,但是,当我使用代码时,它会用两个不同的值显示同一产品两次,sql-server,Sql Server,我来自巴西抱歉英语不好,我在用谷歌翻译 我需要显示给定产品的最高日期时间,但是,当我使用代码时,它会用两个不同的值显示同一产品两次 在这里: 进行选择以显示每个产品的最后一次移动,因为此移动为非零 显示按数量从高到低排序的记录 我只需要显示一个给定产品的日期时间,但是,它显示的是重复的和不同的日期时间 代码: SELECT DISTINCT Produto.CdEmpresa, MovimentoEstoque.NumMovEstoque, MovimentoEstoque.CdPro
SELECT DISTINCT Produto.CdEmpresa, MovimentoEstoque.NumMovEstoque, MovimentoEstoque.CdProduto, MAX(MovimentoEstoque.DataHora) AS UltimaMovimentaçao,
MovimentoEstoque.QtdMovimento
FROM Produto
INNER JOIN MovimentoEstoque ON Produto.CdProduto = MovimentoEstoque.CdProduto
WHERE (MovimentoEstoque.NumMovEstoque <> 0)
GROUP BY produto.cdempresa, movimentoestoque.nummovestoque, movimentoestoque.cdproduto, movimentoestoque.qtdmovimento
ORDER BY MovimentoEstoque.QtdMovimento DESC
我相信您正在寻找每种产品的最新一行。要做到这一点,您需要识别每个CdProduto的最新日期,然后使用该日期作为筛选器来选择要查找的行。这是一个该如何工作的示例:
SELECT Produto.CdEmpresa
, MovimentoEstoque.NumMovEstoque
, MovimentoEstoque.CdProduto
, MovimentoEstoque.DataHora AS UltimaMovimentaçao
, MovimentoEstoque.QtdMovimento
FROM Produto
INNER JOIN MovimentoEstoque ON Produto.CdProduto = MovimentoEstoque.CdProduto
INNER JOIN (
SELECT MAX(MovimentoEstoque.DataHora) as DataHora,
MovimentoEstoque.CdProduto
FROM MovimentoEstoque
GROUP BY MovimentoEstoque.CdProduto
) as UltimaDataHora
ON UltimaDataHora.CdProduto = MovimentoEstoque.CdProduto
AND UltimaDataHora.DataHora = MovimentoEstoque.DataHora
WHERE (MovimentoEstoque.NumMovEstoque <> 0)
GROUP BY produto.cdempresa
, movimentoestoque.nummovestoque
, movimentoestoque.cdproduto
, movimentoestoque.qtdmovimento
ORDER BY MovimentoEstoque.QtdMovimento DESC
请添加示例数据和所需输出,以澄清您的问题。当你编辑你的问题时,你应该用{}按钮格式化你的代码块。哇,非常感谢!CdProduto产品代码仍然重复,但我相信这是因为datetime不完整,只显示日期。我将尝试更改显示的时间,而不是DateHora是DtHoraLancamento发布的日期和时间。我没有想过在另一个内进行选择。因为,我是SQLServer的新手。我找了一些关于如何解决这个问题的视频。在另一个选择中进行此选择是否能够更好地组织?此类型的选择专门用于过滤,就像上面所做的一样,用于选择集合中具有特定、最小或最大值的行。类似类型的查询还有其他用途,但它们通常特定于您的数据需求。请记住,在您决定如何处理查询时,这是一种可能性,当然还有其他753种可能的处理查询的方法:-