2016-11-21 73 views
-1
我已經有我我的分組表的列問題

SQL服務器分組列值

Private Sub BindRepeater() 
    Dim cn As String = ConfigurationManager.ConnectionStrings("db").ConnectionString 
    Using cs As New SqlConnection(cn) 
     Using cmd As New SqlCommand("SELECT * from tbl_in_record GROUP BY in_pc_no", cs) 
      Using sda As New SqlDataAdapter(cmd) 
       Dim dt As New DataTable() 
       sda.Fill(dt) 
       rptTableIn.DataSource = dt 
       rptTableIn.DataBind() 
      End Using 
     End Using 
    End Using 
End Sub 

它顯示這個錯誤

列「tbl_in_record.in_no」在選擇列表中,因爲無效它不包含在聚合函數或GROUP BY子句中。

我的表看起來像這樣

in_id  in_pc_no  

1 abc-def-ghi1-01 
    2 abc-def-ghi1-01 
    3 abc-def-ghi1-01 
12 abc-def-ghi1-01 
13 abc-def-ghi1-01 
14 abc-def-ghi1-01 
15 abc-def-ghi1-01 
+0

您希望輸出看起來像什麼? – mendosi

+0

只顯示2行 101-33X-7104-01和 101-33X-7014-02和其他相應的列值 – user1260572

+0

然後只用'in_pc_no'替換'*'。 '*'意味着你正在選擇'in_id',這也就意味着你不能將'in_pc_no'分組,而不必爲'in_id'分組,除非你總結了一個字段,你的情況是你沒有總結一個ID。 –

回答

0

所以,你可以使用兩種:

SELECT DISTINCT in_pc_no FROM tbl_in_record; 

SELECT in_pc_no FROM tbl_in_record GROUP BY in_pc_no; 

所包含的任何其他字段都需要具有某種聚合功能,例如,

SELECT in_pc_no, n = Count(in_id) FROM tbl_in_record GROUP BY in_pc_no;