我在尋找,但我沒有看到與Distinct
確切的問題。SQL DISTINCT加入或替代方法返回單一結果
SETUP
4表
Users (UserId, FirstName, LastName, Email, Phone)
CuUsers (UserId, AccountId, PrimaryUser)
HrUsers (UserId, EmployeeId, DeptId)
VendUser (UserId, VendorId...)
設計目的
用戶可以是這些僱員,客戶,供應商的任何或多個
A用戶可以是顧客的擁有者帳戶或多個帳戶
用戶可能是一個帳戶的所有者,另一個帳戶的僱員可能是
此查詢
是試圖讓客戶用戶只
期望的結果
的名單我想的LastName
字母順序排列,這樣我可以把它作爲一個按鈕,過濾器,以便我只得到字母的結果,用戶的客戶,使也就是說,如果沒有人的姓氏與ZI開始沒有得到AZ過濾
<asp:ListView ID="lvSelectCustomerAlpha" runat="server" DataSourceID="SqlSelectUserAlpha"
DataKeyNames="UserId" EnableModelValidation="True">
<ItemTemplate>
<asp:Button Text='<%# Eval("LastName") %>' runat="server" ID="btnAlpha"
CommandArgument='<%# Eval("UserId") %>' OnClick="btnSelectAnAccount_Click"
CssClass="small" />
</ItemTemplate>
<LayoutTemplate>
<div runat="server" id="itemPlaceholderContainer" class="pager">
<div class="clr"></div>
<span class="title">Last Name:</span>
<div runat="server" id="itemPlaceholder"></div>
</div>
</LayoutTemplate>
</asp:ListView>
<asp:SqlDataSource runat="server" ID="SqlSelectUserAlpha"
ConnectionString='<%$ ConnectionStrings:MySolutionsCnSt %>'
SelectCommand="SELECT DISTINCT(SUBSTRING(Users.LastName,1,1)) AS LastName, CuAcctsUsr.UserId FROM CuAcctsUsr LEFT OUTER JOIN Users ON CuAcctsUsr.UserId = Users.UserId" />
SQL命令
SELECT DISTINCT(SUBSTRING(Users.LastName,1,1)) AS LastName,
CuAcctsUsr.UserId FROM CuAcctsUsr LEFT OUTER JOIN Users ON
CuAcctsUsr.UserId = Users.UserId
我的列表返回升4個實例時,我只需要一個,我需要的userId
從一個表中獲取用戶信息併爲您在其他客戶,否則我要複製所有的用戶信息到這兩個表。
如果UserId
的不同,有沒有辦法只返回LastName
字段中使用的每個字母的單個實例?我道歉,如果這之前已經公佈,但我沒有看到確切的工作,爲這種類型的請求 !(http://mycleaningsolution.com/desiredresult.jpg)
這是一個嚴重的書面質詢。請以更具可讀性的方式來設置問題的格式,而不是沒有標點符號的長段。另外,只包含SQL本身。所有其他XML文本與你的問題有什麼關係?請參閱http://stackoverflow.com/help/mcve – Andreas
首次用戶,沒有像我想要的格式,抱歉。我想我的問題是,爲什麼Sql不只是DISTINCT我想要的一列而不是其他的,爲什麼它應用不同的所有,是否有一個解決方法,而不必重複表的列和數據? –
DISTINCT適用於** all **結果列。這就是SQL DISTINCT的工作原理。 – Andreas