0
我正在使用Sql Server。我正在嘗試使用聯盟來確保我根據建立代碼從交易表中獲取所有驅動程序電話和其他值,並將它們與來自基於相同建立代碼的連接表中的相同DriverPhone和其他值相結合。連接表查詢(union的後半部分)檢索另一個字段val(ETA),比從事務表中檢索到的字段的值(ETA)更多。一些司機電話可能在一張桌子上而不在另一張桌子上,反之亦然,或者兩者都有。 所以我需要一個所有驅動程序的列表,這兩個表之間沒有重複的驅動程序,但我希望它們按來自連接表的ETA值排序。可以這樣做嗎?我不認爲我所擁有的將會工作,並且我認爲它只會對ETA的查詢的連接部分進行排序,當我需要聯合結果集本身按ETA排序時,並且如果有人能指向正確的方向,這將不勝感激。如何結合多個字段的數據
SqlCommand getDrivers = new SqlCommand("SELECT DriverPhone, UserHandle FROM Transactions WHERE EstablishmentCode = @ec UNION SELECT PhoneNumber, UserHandle, ETA FROM Connection WHERE EstablishmentCode = @ec AND Dispatcher = @disp OrderBy ETA", myTransactions);
getDrivers.Parameters.AddWithValue("@ec", "ec");
getDrivers.Parameters.AddWithValue("@disp", false);
嗨jNevill,尋找答案感謝。澄清.ETA是連接表中的一個字符串值,在transactions表中還有一個名爲ETA的字符串列,但它表示一個事務eta,而不是驅動程序的總eta,而連接表保存的是總驅動程序eta他在交易表中的條目總數爲etas。而且我也不明白將null作爲日期。謝謝。 – user192632
我假設你的'connection'表中的ETA值是作爲日期鑄造的。如果這是一個字符串,那麼將NULL轉換爲varchar。 UNION必須具有相同數量的字段,並且還必須具有相同的字段類型。 – JNevill