2014-11-22 77 views
0

当我查询表“class_attendance”时。如何在datagridview的单行多列中插入多行记录

select rollno, name, fname, date, attandance from class_attendance where class = '6th' and month = 'November' 

我明白了。

rollno name   fname  date  attandance  
111  zeeshan  Khan  2013-11-08  P 
111  zeeshan  Khan  2013-11-09  P 
111  zeeshan  Khan  2013-11-28  A 
112  ahmad   Ali  2013-11-28  P 

而我想在datagridview中像这样显示它(日期明智)。

rollno  name   fname  8  9  28 
111  zeeshan  Khan  P  P  A 
112  ahmad   Ali      P 

何应该这样做吗?

+0

这就是所谓的'枢轴' – 2014-11-22 11:50:03

+0

那么我怎么能解决它? – Loyal 2014-11-22 11:50:57

回答

0

试试这个: -

select rollno,name,fname,[8],[9],[28] 
FROM 
(
    select rollno,name,fname, DATEPART(d,[date]) enterdate,attandance 
    from students 
)first 
PIVOT 
(
    MAX(attandance) 
    FOR [enterdate] 
    IN ([8],[9],[28]) 
) 
as pivottable 

这是给我下面的输出: -

enter image description here

然后,您可以在你的GridView显示此数据。

+0

但整个月呢? – Loyal 2014-11-22 15:56:08

+0

作为出席将标记每一天。 – Loyal 2014-11-22 15:56:28

+0

@Loyal - 那么显然'SQL Pivot'不是一个好选择!你没有在你的问题中提到过。整整一个月,你不觉得你的网格会太大吗? – 2014-11-22 16:07:43