簡體   English   中英

如何在兩個日期之間選擇不同的值

[英]How do I select distinct values between two dates

我正在兩個日期之間選擇兩個記錄,這樣做時我遇到重復的記錄,我使用了單詞distinct,但它不起作用:這是我的查詢的樣子:

public List<i> searchTwoDates(string firstDate, string secondDate)
{
    DateTime fdate = Convert.ToDateTime(firstDate);
    string realfirstDate = fdate.ToLongDateString();

    DateTime sdate = Convert.ToDateTime(secondDate);
    string realsecondDate = sdate.ToLongDateString();

    List<i> date = new List<i>();
    SqlConnection conn = new SqlConnection(....);
    SqlCommand command = new SqlCommand(@"SELECT distinct * From TableName WHERE Cast(columnName AS DATE) > @columnName AND CAST(columnName AS DATE) < @columnName1 ORDER BY columnName1 Desc", conn);
    command.Parameters.AddWithValue("@columnName", realfirstDate);
    command.Parameters.AddWithValue("@columnName2", realsecondDate);

    conn.Open();
    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        Mod d = new Mod();
         here i get my column names....
        date.Add(d);
    }
    conn.Close();
    return date;
}

我的數據庫中也有一個唯一ID,因此我們可以使用它來檢索唯一記錄,但是我該怎么寫呢?

目前我正在重復記錄

ID  FName sName Date
1   John  JAck  2013-9-07
2   Linda Bush  2013-10-07
3   Linda Bush  2013-11-07
This is what i want
ID  FName sName  
1   John  JAck  2013-9-07
2   Linda Bush  2013-11-07

這是2013-9-07至2013-11-07之間的記錄。 在這些記錄之間,我不需要任何重復的ID

[從評論遷移]

您應該使用select distinct id, fname, sname from table 如果您不需要日期,則可以使用,無需重復。

嘗試這個

Select Max(ID),FName,sName,Max(Date)
FROM Table1
Where Date > 'SomeDate' And Date < 'SomeDate'
Group By FName,sName

不要嘗試使用BETWEEN

SELECT DISTINCT ID,FName,sName,Date
FROM Table1
WHERE Date BETWEEN 'Date1' And 'Date2'

UPDATE

由於上述問題中的兩個日期和ID不同,因此您應該使用分組。 這給您:

SELECT MIN(ID),FName,sName, MIN(Date)
FROM Table1
WHERE Date BETWEEN 'Date1' And 'Date2'
ORDER BY ID
GROUP BY FName,sName

DISTINCT將不起作用,因為每個記錄的ID和日期都不同。

上面的查詢將為您提供第一個出現的ID。 您可以將ORDER BY更改為Date以獲取最早的日期。 或者,您想要最新的然后使用MAX而不是MIN然后將ORDER BYDESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM