我有以下表结构也有我提到我预期的输出,请帮我查询,因为我不知道很多关于SQL查询获得SQL
查询:
SELECT fname,
lname,
(SELECT combovalue
FROM dbo.combovalues
WHERE id = esilocation) AS ESILocation,
(SELECT combovalue
FROM dbo.combovalues
WHERE id = esidispensary) AS ESIDispensary,
dateofjoining,
terminationdate
FROM dbo.employeedetail
输出:
FName LName ESILocation ESIDispensary DateOfJoining TerminationDate
Pratik Sawant pune mumbai 2014-06-08 2014-08-01
Nilesh Gajare pune pune 2014-09-12 2014-11-19
Praveen SONi mumbai mumbai 2014-08-13 2014-11-13
Prshant Sawant mumbai mumbai 2014-11-18 NULL
rohit bhora pune pune 2014-09-20 2014-11-20
sujit patil pune mumbai 2014-10-20 2014-11-20
Akshay patil pune pune 2015-09-24 NULL
问题2:
SELECT category,
(SELECT combovalue
FROM dbo.combovalues
WHERE id = esilocation) AS ESILocation,
(SELECT combovalue
FROM dbo.combovalues
WHERE id = esidispensary) AS ESIDispensary,
Month(dateofjoining) AS month,
Year(dateofjoining) AS year,
Count(*) AS [Joining Count]
FROM dbo.employeedetail
WHERE category IN (1, 2)
AND dateofjoining >= '2014-01-01'
AND dateofjoining <= '2014-12-31'
GROUP BY category,
esilocation,
esidispensary,
Month(dateofjoining),
Year(dateofjoining)
输出:
Category ESILocation ESIDispensary month year Joining Count
1 mumbai mumbai 8 2014 1
1 pune mumbai 6 2014 1
2 pune mumbai 10 2014 1
2 pune pune 9 2014 2
查询3:
SELECT category,
(SELECT combovalue
FROM dbo.combovalues
WHERE id = esilocation) AS ESILocation,
(SELECT combovalue
FROM dbo.combovalues
WHERE id = esidispensary) AS ESIDispensary,
Month(terminationdate) AS month,
Year(terminationdate) AS year,
Count(*) AS [Termination Count]
FROM dbo.employeedetail
WHERE category IN (1, 2)
AND (Month(terminationdate) IS NOT NULL
OR Month(terminationdate) != '')
AND (Year(terminationdate) IS NOT NULL
OR Year(terminationdate) != '')
GROUP BY category,
esilocation,
esidispensary,
Month(terminationdate),
Year(terminationdate)
输出:
Category ESILocation ESIDispensary month year Termination Count
1 mumbai mumbai 11 2014 1
1 pune mumbai 8 2014 1
2 pune mumbai 11 2014 1
2 pune pune 11 2014 2
第二和第三查询提供了计数终止和连接数,预期的结果应在同时显示计数单桌
预计输出
Category ESILocation ESIDispensary Joining Termination Joining Termiation
Count Count Count Count
Jun-2014 jun-2014 Aug-2014 Aug-2014
1 mumbai mumbai Null Null 1 Null
1 pune mumbai 1 Null Null 1
2 pune mumbai Null Null Null Null
2 pune pune Null Null Null Null
@Update
按@Markus Jarderot回答我得到这个输出
category esilocation esidispensary year month Joining Count Termination Count
1 mumbai mumbai 2014 8 1 0
1 mumbai mumbai 2014 11 0 1
1 pune mumbai 2014 6 1 0
1 pune mumbai 2014 8 1 1
2 pune mumbai 2014 10 1 0
2 pune mumbai 2014 11 0 1
2 pune pune 2014 9 2 0
2 pune pune 2014 11 0 2
但问题是,我想这上面的表格枢纽即
的预期输出
category esilocation esidispensary 8/2014 join 8/2014 term 11/2014 join 11/2014 term
1 mumbai mumbai 1 0 0 1
1 pune mumbai 1 1 null null
2 pune mumbai null null 0 1
2 pune pune null null 0 2
1)该如何与C#? 2)你没有发布源表结构,只是几个查询和它们的输出。 – Dennis 2014-11-24 06:55:53
@Dennis源表是我第一次查询 – Nilesh 2014-11-24 06:57:55