的UI(報告顯示之前)示出了一個查找(組合),其具有TSQL哈克需要用於獲取對數據的過濾器
- (ID = 0)。所有組織單元
- (ID = 4).HR
- (ID = 5).DEV
我需要:
- 如果選擇 (0),能夠顯示(4)+(5)的數據。
- 僅限(4)或(5)如果選擇了HR或DEV。
查找組合代碼(所選資訊在下面的查詢參數。)
Select 0 AS ID,'All Org' AS Name from DP_ORG_OrganizationUnit
where DP_ORG_OrganizationUnit.Code IN {AccessData}
Union
SELECT
DP_ORG_OrganizationUnit.ID,
DP_ORG_OrganizationUnit.Name
FROM DP_ORG_OrganizationUnit where DP_ORG_OrganizationUnit.Code IN ('HR','DEV')
報告數據行查詢
SET CONCAT_NULL_YIELDS_NULL OFF
DECLARE @EmpID as int;
DECLARE @OrganizationUnit as int;
DECLARE @StartDate as datetime;
DECLARE @EndDate as datetime;
SET @EmpID = ?;
SET @StartDate = ?;
SET @EndDate = ?;
SET @OrganizationUnit = ?;
SELECT
Employee.Code,
Employee.Name1+' '+Employee.Name2+' '+Employee.Name3+' '+Employee.Name4+' '+Employee.Name5 AS FullName,
Employee.OrganizationUnit,
ContractType.Name,
EmployeeContract.StartDate,
EmployeeContract.EndDate
FROM Employee INNER JOIN (ContractType INNER JOIN EmployeeContract
ON ContractType.ID = EmployeeContract.ContractType)
ON Employee.ID = EmployeeContract.Employee
WHERE (Employee.ID = @EmpID OR @EmpID=0)
AND
(Employee.OrganizationUnit = @OrganizationUnit OR @OrganizationUnit=0)
AND NOT((EndDate < @StartDate or StartDate > @EndDate));
任何方式,我可以從它的外觀實現它? 0 = 0會顯示來自其他 部門的所有數據..
任何人:-o?
瞭解是ISNULL()和COALESCE(),因爲當您在WHERE,lookout表掃描中放置KEY = x OR Key = y時,「SET CONCAT_NULL_YIELDS_NULL OFF」將在未來 – 2009-06-08 15:15:13
消失。 – 2009-06-09 20:32:52