i have problem grouping resultset.
i need group results on tab_1_colname
, (different part) order of results of tab_2_order
if have same tab_2_ids
.
so have first resultset, looks this:
tab_1_colname tab_2_colname tab_2_id tab_2_order name_1 type_1 16 10 name_1 type_2 17 20 name_1 type_3 18 30 name_2 type_1 16 10 name_2 type_2 17 20 name_2 type_3 18 30 name_3 type_1 16 400 name_3 type_2 17 500 name_3 type_3 18 600 name_4 type_1 16 10 name_4 type_3 18 20 name_4 type_2 17 30
the result need looks this:
group1 => (name_1 - name_3) ids in order (16, 17, 18), group2 => (name_4) ids in order (16, 18, 17)
i have no idee how achive this. tried group directly on db, there stuck on
select tab_1_colname, tab_2_id tab_1, tab_2 tab_1_othderid = tab_2_othderid group tab_2_id, tab_1_colname
my second idea try linq, there stuck fast pure sql try
dt.rows.oftype<datarow>().orderby(x => x["tab_2_order"]).groupby(r => r["tab_2_id"])
any ideas how solve problem?
edit:
expected result:
first row: name_1 tab_2_ids order tab_2_order.
second row: name_4 tab_2_ids order tab_2_order.
(name_2 , name_3 should in same group name_1 because have same tab_2_ids in same order)
you don use aggregation function don't need grou .. instead use disticnt select distinct value and/or order ordering result eg:
select distinct tab_1_colname, tab_2_id tab_1, tab_2 tab_1_othderid = tab_2_othderid order tab_2_id, tab_1_colname
Comments
Post a Comment