我需要顯示日期列表,我有一個表SQL獲得的日期列表,以及天及沒有經過複製
SELECT mydate AS MyDate, 1 AS DateType
FROM myTable
WHERE myTable.fkId = @MyFkId;
2010年1月1日 - 1
2010年1月2日 - 1
2010年1月10日 - 1
沒問題。但是,我現在需要顯示日期和日期之後的日期以及不同的DateType。
2009年12月31日 - 2
2010年1月1日 - 1
2010年1月2日 - 1
2010年1月3日 - 2
2010年1月9日 - 2
2010年1月10日 - 1
2010年1月11日 - 2
我想我可以用一個工會
SELECT MyDate, DateType
FROM (
SELECT mydate - 1 AS MyDate, 2 AS DateType
FROM myTable
WHERE myTable.fkId = @MyFkId;
UNION
SELECT mydate + 1 AS MyDate, 2 AS DateType
FROM myTable
WHERE myTable.fkId = @MyFkId;
UNION
SELECT mydate AS MyDate, 1 AS DateType
FROM myTable
WHERE myTable.fkId = @MyFkId;
) AS myCombinedDateTable
但是,這包括原始日期的重複項。
2009年12月31日 - 2
2010年1月1日 - 2
2010年1月1日 - 1
2010年1月2日 - 2
2010年1月2日 - 1
2010年1月3日 - 2
2010年1月9日 - 2
2010年1月10日 - 1
2010年1月11日 - 2
如何我最好刪除這些重複項目嗎?我正在考慮臨時表格,但我不確定這是否是最好的方法。
在我看來,它可能會提供性能問題,因爲我在三個不同的時間運行相同的查詢。
什麼是最好的方式來處理這個請求?
它們在技術上並不重複,因爲日期類型不同。哪些日期類型要在重複時顯示? – RedFilter 2010-03-11 17:55:22
@OrbMan,你是對的,如果日期重複,忽略類型2,我想顯示類型1. – 2010-03-11 17:57:32
「2009年1月1日 - 2」來自哪裏(注意1月和2009年)。 – 2010-03-11 17:58:11