如何消除此代码生成的重复值

时间:2017-11-20 03:50:13

标签: sql select duplicates distinct

enter image description here

SELECT DISTINCT dia, nome, preco, produto 
FROM clientes, vendas, produtos 
WHERE id = 1 AND id_cliente = 1 AND id_cliente_produto = 1

1 个答案:

答案 0 :(得分:0)

当您选择不同时,将删除重复项。但是,每行的日期时间不同,因此这些值是按日期时间不同的值 - 因此您无法删除重复项。您可以将日期时间转换为日期以获取每个行条目的相同日期值,然后使用distinct来正确删除重复项。

在SQL Server中,例如:

SELECT DISTINCT CAST(dia as date) [Date], nome, preco, produto 
  FROM clientes, vendas, produtos 
 where id=1 and id_cliente=1 and id_cliente_produto=1

如果你想要小时,它会是这样的:

SELECT DISTINCT CAST(dia as date) [Date], 
               ,DATEPART(HOUR, dia) [Hour]
               ,nome, preco, produto 
  FROM clientes, vendas, produtos 
 where id=1 and id_cliente=1 and id_cliente_produto=1