2016-05-25 6 views
1

私は、従業員の出席をデータベースに格納するgridviewを使用して出席シートを作成しました。私の出席表は、私は何をしようとしていますが、私は、このような方法で、GridViewの中に出席記録を取得したいということである今、このデータベースから出席記録をgridview ASP.netへC#

tblattendance 

Att_ID   Emp_ID   Emp_name  Date   Att_status 
1    002    xyz   25/05/2016  Absent 
2    002    xyz   26/05/2016  Present 

のようなものであることから、特定の従業員のabsentsやプレゼントの合計数特定の日付に特定の日付が表示されます。これまでのところ、私は次のコードを実行しましたが、特定の従業員の2行目の行と1行の不在を表示します。私はそれを同じ行に表示したい。私はまだ日付のWhere条件を書かなかった。

SqlDataAdapter da = new SqlDataAdapter(); 
      da.SelectCommand = new SqlCommand("SELECT Emp_ID, Emp_name, COUNT(Att_status) AS Astatus FROM tblattendance WHERE Att_status='Absent' AND Emp_ID='2' GROUP BY Emp_ID, Emp_name, Att_status",conn); 
      DataTable dt = new DataTable(); 
      da.Fill(dt); 
      SqlDataAdapter da1 = new SqlDataAdapter(); 
      da1.SelectCommand = new SqlCommand("SELECT COUNT(Att_status) AS Pstatus FROM tblattendance WHERE Att_status='Present' AND Emp_ID='2' GROUP BY Att_status",conn); 
      da1.Fill(dt); 

      GridView1.DataSource = dt; 
      GridView1.DataBind(); 

ページロードで行われます。必要な文字列で文字列 - 「日付にから」と下限との上限を入れて、あなたのビューを想定し

+0

ここから始めましょう。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

答えて

0

select emp_id, emp_name, 'from - to dates' as dates, 
sum(case when Att_status = 'Absent' then 1 else 0 end) as [Absent], 
sum(case when Att_status = 'Present' then 1 else 0 end) as [Present] 
from [dbo].[tblattendance] 
where [date] >= CONVERT(date, '05/25/2016') and [date] <= convert(date, '05/27/2016') 
group by emp_id, emp_name 

は交換してください、あなたのビューを移入するにはSQL以下、この

Emp_Id Emp_name Dates Absent Present 

使用のようなものですwhere句の日付。私はテーブルに3レコードを挿入したので、私は2011年5月27日に上限を持っています。

関連する問題