Как объединить две таблицы в хранимой процедуре для передачи псевдонима в поле данных в представлении aspgrid
Привет я работаю над ASP Grid получая данные из одной таблицы и обновляя детали из другой таблицы
Что я уже пробовал:
<pre> Alter procedure [dbo].[Sampe3](@years int,@months int) as ;with t1 as ( SELECT DeptID, COUNT(EmpID) AS TotalHeadCount FROM EmployeeDetails WHERE (datepart(yyyy,DOJ) between 2005 and @years) and Status =0 group by DeptID ), t2 as ( SELECT DeptID,COUNT(EmpID) AS NewJoinees FROM EmployeeDetails AS EmployeeDetails_7 WHERE (DATEPART(yyyy, DOJ) = @years) AND (DATEPART(mm, DOJ) = @months) and datepart(mm,DOJ)>= @months and Status = 0 group by DeptID ), t3 as ( SELECT DeptID,COUNT(EmpID) AS Resigned FROM EmployeeDetails AS EmployeeDetails_7 WHERE (DATEPART(yyyy, deactivate) = @years) AND (DATEPART(mm, deactivate) = @months) and datepart(mm,deactivate)>= @months and Status =1 group by DeptID ) Select t1.DeptID, CASE WHEN TotalHeadCount IS NULL THEN '0' ELSE TotalHeadCount END AS TotalHeadCount,CASE WHEN NewJoinees IS NULL THEN '0' ELSE NewJoinees END AS NewJoinees,CASE WHEN Resigned IS NULL THEN '0' ELSE Resigned END AS Resigned, '' as ToBeHired, '' as OpenPositions, '' as Status from t1 full outer join t2 on t1.DeptID = t2.DeptID full outer join t3 on t1.DeptID = t3.DeptID union Select 'ZTotal' as total, '' as TotalHeadCount, '' as NewJoinees, '' as Resigned, '' as ToBeHired, '' as OpenPositions, '' as Status (Update RecruitmentDetails set Tobehired=@Tobehired, OpenPosition=@OpenPosition, Status=@Status) As Update
<asp:GridView ID="grdvEmployeeLeaveUpdate" runat="server" DataKeyNames="" class="table table-bordered table-striped table-hover" DataSourceID="SqlDataSourceHeadCount" OnRowDataBound="grdvEmployeeLeaveUpdate_RowDataBound" Width="100%" OnRowDeleting="grdvEmployeeLeaveUpdate_RowDeleting" OnRowEditing="grdvEmployeeLeaveUpdate_RowEditing" OnRowUpdating="grdvEmployeeLeaveUpdate_RowUpdating" OnRowCancelingEdit="grdvEmployeeLeaveUpdate_RowCancelingEdit" OnPageIndexChanging="grdvEmployeeLeaveUpdate_PageIndexChanging"> <Columns> <asp:BoundField DataField="DeptID" HeaderText="Cost Center" ReadOnly="true" ControlStyle-Width="50px" /> <asp:BoundField DataField="TotalHeadCount" HeaderText="HeadCount" ReadOnly="true" ControlStyle-Width="50px" /> <asp:BoundField DataField="NewJoinees" HeaderText="Additions" ReadOnly="true" ControlStyle-Width="50px" /> <asp:BoundField DataField="Resigned" HeaderText="Separations" ReadOnly="true" ControlStyle-Width="50px" /> <asp:BoundField DataField="ToBeHired" HeaderText="To Be Hired" ControlStyle-Width="50px" /> <asp:BoundField DataField="OpenPositions" HeaderText="Open Position" ControlStyle-Width="50px" /> <asp:BoundField DataField="Status" HeaderText="Status" ControlStyle-Width="50px" /> <asp:CommandField HeaderText="Update" ShowEditButton="True" ControlStyle-Width="50px" /> </Columns> <HeaderStyle></HeaderStyle> </asp:GridView>
<asp:SqlDataSource ID="SqlDataSourceHeadCount" runat="server" ConnectionString="<%$ ConnectionStrings:TimeSheetConnectionString2 %>" SelectCommandType="StoredProcedure" SelectCommand="Sampe3"> <SelectParameters> <asp:ControlParameter ControlID="ddlMonths" Name="months" Type="Int32" /> <asp:ControlParameter ControlID="ddlyear" Name="years" Type="Int32" /> </SelectParameters> </asp:SqlDataSource>
CHill60
Пожалуйста, четко сформулируйте свой вопрос в тексте вопроса (а не в названии). Некоторые примеры данных и пример ваших ожидаемых результатов очень помогут.
Включайте только тот код, который имеет отношение к вашей проблеме. Используйте Улучшить вопрос ссылка для обновления вашего вопроса.
CHill60
Один намек я могу дать вам сразу ... Заменять
CASE WHEN TotalHeadCount IS NULL THEN '0' ELSE TotalHeadCount END AS TotalHeadCount, CASE WHEN NewJoinees IS NULL THEN '0' ELSE NewJoinees END AS NewJoinees,CASE WHEN Resigned IS NULL THEN '0' ELSE Resigned END AS Resigned,со следующим
ISNULL(TotalHeadCount, 0) AS TotalHeadCount,ISNULL(NewJoinees, 0) AS NewJoinees,ISNULL(Resigned, 0) AS Resigned,