2015-07-10 36 views
0

完整的錯誤是:如何解決錯誤:「子查詢返回多個值」。 !當子查詢跟隨用作表達式不允許=,=,<, <= , >,> =或

Subquery returned more than 1 value. Not permitted when subquery follows =, !=, <, <= , >, >= or used as an expression 

查詢:

SqlConnection connect = Helper.GetCon; 
string query = "select sum(amardate) as[All] ,"+ 
       "(select amardate from Amar where insertdate='" + 
        DateTime.UtcNow.ToString("s") + "')as[Now]," + 
       "(select amardate from Amar where insertdate='" + 
        DateTime.UtcNow.AddDays(-1).ToString("s") + "')as[Last] From Amar"; 

SqlDataAdapter da = new SqlDataAdapter(query, connect); 
DataSet ds = new DataSet(); 
da.Fill(ds); 
return ds; 

回答

1

一個或以上的子查詢返回多行數據,只能返回一行。例如你有這樣的事情發生:

    1234   1121 
sum(amardate) + 5678 AS now + 3141 AS last 
        9101   5161 

其中12341121,等等都是由子查詢返回的額外行。現在DB做什麼?它不知道你想要加在一起的多個值中的哪一個。它也不能僅僅將這一行結果奇蹟般地分成三個新行,因爲它不知道分割應該如何發生。

您需要確保兩個子查詢只能返回ONE結果行,由ONE單個值。

相關問題