首页 > 解决方案 > 尝试选择不同的值,并且必须格式化日期和排序,就像它在 MS SQL 服务器上的日期时间一样

问题描述

所以这就是我正在运行的:

SELECT DISTINCT 
[Number1] as 'Number 1',
[Number2] as 'Number 2',
FORMAT([Date], 'M/d/yyy') as 'Date in full' 
FROM [DBTable1] as D1 
JOIN [DBTable2] as D2 on D2.Number2=D1.Number2 
JOIN [DBTable3] as D3 on D3.Number1=D2.Number1 
order by 'Date in full' Desc

我得到:

|Number 1|Number 2|Date in full|
|123     |234     |9/30/2018   |
|345     |456     |9/6/2018    |
|567     |678     |10/2/2018   |

我需要得到什么:

|Number 1|Number 2|Date in full|
|567     |678     |10/2/2018   |
|123     |234     |9/30/2018   |
|345     |456     |9/6/2018    |

基本上,我需要从几个数据库表中获取信息并以某种格式保存它们。问题是在使用 DISTINCT 函数时必须按日期排序,并且仍然以某种方式具有日期格式。

标签: sql-server

解决方案


首先,您需要分组,然后订购。

试试这个查询。

SELECT [Number1] AS [Number 1]
       [Number2]  AS [Number 2]
       FORMAT([Date], 'M/d/yyy') AS [Date in Full]
FROM [DBTable1] as D1 
JOIN [DBTable2] as D2 on D2.Number2=D1.Number2 
JOIN [DBTable3] as D3 on D3.Number1=D2.Number1
GROUP BY [Number1], [Number2], [Date]
order by [Date] Desc

推荐阅读