TB_Employee
EmpNo EmpName EmpLevel GroupNo WorkDate LevelDate AcccountNo
5403 反对 1 SF锐力组 2007-10-18 123456
5408 工党 2 SF锐力组 2007-10-22 123456
5429 和 3 SF锐力组 2007-10-22 123456
5412 华人 1 SF锐力组 2007-10-22 123456
5427 刘个 2 SF锐力组 2007-10-22 123456
5732 赫赫 3 SF锐力组 2008-3-12 123456
5737 吴怀仁 1 SF锐力组 2008-3-12 123456
5738 翟据 2 SF锐力组 2008-3-12 123456
5746 陈 3 SF锐力组 2008-3-12 123456
5735 韦 1 SF锐力组 2008-3-12 123456
5428 刘三 2 SF锐力组 2007-10-12 123456TB_OtherFee
ID EmpNo FeeItemNo RegDate FeeNum
6 5403 01 2009-1-2 20
7 5408 02 2009-1-5 50我想要的效果是 联合查询2个表,最终生成记录字段为: EmpNo\FeeNum,当TB_OtherFee中没有TB_Employee表中的EmpNo时,FeeNum 为0 否则为 TB_OtherFee中对应工号的 FeeNum
SELECT A.EmpNo, SUM(B.FeeNum) AS 扣罚, CONVERT(varchar(4), DATEADD(mm, - 1,
GETDATE()), 120) AS statYear, SUBSTRING(CONVERT(varchar(10), DATEADD(mm, - 1,
GETDATE()), 120), 6, 2) AS statMonth
FROM TB_Employee A,TB_OtherFee B
WHERE (FeeItemNo IN
(SELECT FeeItemNo
FROM TC_ChangeFeeItem
WHERE FeeType = 0)) AND (CONVERT(varchar(7), RegDate, 120)
= CONVERT(varchar(7), DATEADD(mm, - 1, GETDATE()), 120))
GROUP BY A.EmpNo
--我这样查询出来的结果是没有符合我的第二个要求,高手整下
EmpNo EmpName EmpLevel GroupNo WorkDate LevelDate AcccountNo
5403 反对 1 SF锐力组 2007-10-18 123456
5408 工党 2 SF锐力组 2007-10-22 123456
5429 和 3 SF锐力组 2007-10-22 123456
5412 华人 1 SF锐力组 2007-10-22 123456
5427 刘个 2 SF锐力组 2007-10-22 123456
5732 赫赫 3 SF锐力组 2008-3-12 123456
5737 吴怀仁 1 SF锐力组 2008-3-12 123456
5738 翟据 2 SF锐力组 2008-3-12 123456
5746 陈 3 SF锐力组 2008-3-12 123456
5735 韦 1 SF锐力组 2008-3-12 123456
5428 刘三 2 SF锐力组 2007-10-12 123456TB_OtherFee
ID EmpNo FeeItemNo RegDate FeeNum
6 5403 01 2009-1-2 20
7 5408 02 2009-1-5 50我想要的效果是 联合查询2个表,最终生成记录字段为: EmpNo\FeeNum,当TB_OtherFee中没有TB_Employee表中的EmpNo时,FeeNum 为0 否则为 TB_OtherFee中对应工号的 FeeNum
SELECT A.EmpNo, SUM(B.FeeNum) AS 扣罚, CONVERT(varchar(4), DATEADD(mm, - 1,
GETDATE()), 120) AS statYear, SUBSTRING(CONVERT(varchar(10), DATEADD(mm, - 1,
GETDATE()), 120), 6, 2) AS statMonth
FROM TB_Employee A,TB_OtherFee B
WHERE (FeeItemNo IN
(SELECT FeeItemNo
FROM TC_ChangeFeeItem
WHERE FeeType = 0)) AND (CONVERT(varchar(7), RegDate, 120)
= CONVERT(varchar(7), DATEADD(mm, - 1, GETDATE()), 120))
GROUP BY A.EmpNo
--我这样查询出来的结果是没有符合我的第二个要求,高手整下
GETDATE()), 120) AS statYear, SUBSTRING(CONVERT(varchar(10), DATEADD(mm, - 1,
GETDATE()), 120), 6, 2) AS statMonth
FROM TB_Employee A left join TB_OtherFee B
ON (FeeItemNo IN
(SELECT FeeItemNo
FROM TC_ChangeFeeItem
WHERE FeeType = 0)) AND (CONVERT(varchar(7), RegDate, 120)
= CONVERT(varchar(7), DATEADD(mm, - 1, GETDATE()), 120))
and a.EmpNo = b.EmpNo --貌似楼主原来写掉这个关键条件
GROUP BY A.EmpNo
6楼的方法好用, 好了, 我自己写的没用 left join 如果TB_OtherFee中没记录就白瞎了 xiexie
友情up
jjjjffff