QnA
사용언어
(칠해주세요) => (C#,VB) |
사용툴 (VS) : |
운영체제 (OS) : |
상세언어(칠해주세요.)
=> 1) ASP.NET, 2) ASP.NET MVC, 3) ASP.NET AJAX |

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

if (viewcheckedcombo.GetCheckedItems().ToString() == "SPEC")
var Query = from table in _middleGridData.AsEnumerable()
group table by new { ITEMNAME = table[2], DESCRIPTION = table[3], SIZE = table[4],
SPECBACK = table["SPECBACK"],SORTNUMBER = table["SORTNUMBER"] }
into grp
orderby grp.Key.SPEC, grp.Key.SORTNUMBER ascending
select new
{
ITEMNAME = grp.Key.ITEMNAME,
DESCRIPTION = grp.Key.DESCRIPTION,
SIZE = grp.Key.SIZE,
AMOUNT = grp.Sum(x => x.Field<double>("AMOUNT")), // AMOUNT
SPECBACK = grp.Key.SPECBACK,
SORTNUMBER = grp.Key.SORTNUMBER
};
DataTable Middle_SORT = _middleGridData.Copy();
Middle_SORT.Clear();
foreach (var qq in Query)
{
Middle_SORT.Rows.Add(null ,null ,qq.ITEMNAME, qq.DESCRIPTION, qq.SIZE, qq.AMOUNT,qq.SPECBACK,qq.SORTNUMBER);
}
midGrid.DataSource = Middle_SORT;
위에는 SPEC ,DWGNO 컬럼이 사라졌을 때 ITEM NAME 과 DESCRIPTION, SORTNUMBER가 같을때 AMOUNT를 계산하기위해 GROUPBY를 써서 묶었습니다.
하지만 아래 보시는 것처럼 Column이 Dynamic하게 1차 2차 3차 등 4차 5차 등으로 바뀌는 경우 어떻게 AMOUNT를 계산해줘야할까요? 위에는 AMOUNT라고 확실히 컬럼이 있기에 가능했지만 아래는 1차가 생기고 2차가생기고 등등등 컬럼이 생기는 상황에 어떻게 바꿔줘야 할지 궁금합니다

첫댓글 for을 통해 컬럼네임을 하나씩 뽑아 Linq를 여러번 돌려 조합해서 해결했습니다.