CREATE FUNCTION dbo
.CFN_salarymonth_2
(
@badge VARCHAR(20) ,
@term SMALLDATETIME
,
@amount1 DECIMAL(18, 4) ,
@amount2 DECIMAL(18, 4) ,
@type INT ,
@type2 INT
)
RETURNS DECIMAL(18, 4)
BEGIN
DECLARE @eid INT ,
@num INT ,
@jobtype INT ,
@SHOP_MANAGER INT ,
@GROUPLEADER INT ,
@value DECIMAL(18, 4) ,
@value31 DECIMAL(18, 4) ,
@value32 DECIMAL(18, 4) ,
@value33 DECIMAL(18, 4) ,
@value34 DECIMAL(18, 4) ,
@value35 DECIMAL(18, 4) ,
@value36 DECIMAL(18, 4) ,
@value37 DECIMAL(18, 4) ,
@value38 DECIMAL(18, 4);
SELECT @eid = EID
FROM dbo
.eEmployee
WHERE Badge
= @badge;
SELECT @jobtype = jobtype
, @SHOP_MANAGER = shop_manager
, @GROUPLEADER = groupleader
FROM dbo
.eleader_sales
WHERE eid
= @eid;
SELECT @num = COUNT(a
.eid
)
FROM dbo
.eleader_sales a
WHERE a
.depid
IN ( SELECT b
.depid
FROM dbo
.eleader_sales b
WHERE b
.eid
= @eid )
;
if (@num=0)
begin
return @num
end
IF ( @type2 IN ( 3, 4 ) )
BEGIN
SELECT @value31 = SUM(amount
), @value32 = SUM(act_amount
)
FROM dbo
.Ccommission1_X2
WHERE shop_num
IN ( SELECT shopcode
FROM dbo
.oDepartment
WHERE DepID
= (
SELECT DepID
FROM dbo
.eEmployee
WHERE EID
= @eid
) )
AND type = 1
AND DATEDIFF
(mm
, @term, term
) = 0;
END;
ELSE
IF ( @type2 = 2 )
BEGIN
SELECT @value31 = SUM(amount
), @value32 = SUM(act_amount
)
FROM dbo
.Ccommission1_X2
WHERE (
eid
IN ( SELECT eid
FROM dbo
.eleader_sales
WHERE groupleader
= @eid )
and eid
<> @eid
)
AND type = 1
AND DATEDIFF
(mm
, @term, term
) = 0;
END;
ELSE
IF ( @type2 = 1 )
BEGIN
SELECT @value31 = isnull
(a
.amount
,0) + isnull
(b
.amount
,0), @value32 = isnull
(a
.act_amount
,0) + isnull
(b
.act_amount
,0)
FROM (
SELECT SUM(amount
) AS amount
, SUM(act_amount
) act_amount
FROM dbo
.Ccommission1_X2
WHERE type = 1
AND eid
= @eid
AND DATEDIFF
(mm
, @term, term
) = 0
) a
,
(
SELECT SUM(amount
) / ISNULL
(@num, 1) AS amount
,
SUM(act_amount
) / ISNULL
(@num, 1) act_amount
FROM dbo
.Ccommission1_X2
WHERE ISNULL
(eid
, 0) = 0
AND type = 1
AND DATEDIFF
(mm
, @term, term
) = 0
AND shop_num
IN ( SELECT shopcode
FROM dbo
.oDepartment
WHERE DepID
= (
SELECT DepID
FROM dbo
.eEmployee
WHERE EID
= @eid
) )
) b
;
END;
IF ( @type2 IN ( 3, 4 ) )
BEGIN
SELECT @value35 = SUM(amount
), @value36 = SUM(act_amount
)
FROM dbo
.Ccommission1_X2
WHERE shop_num
IN ( SELECT shopcode
FROM dbo
.oDepartment
WHERE DepID
= (
SELECT DepID
FROM dbo
.eEmployee
WHERE EID
= @eid
) )
AND type = 2
AND DATEDIFF
(mm
, @term, term
) = 0;
END;
ELSE
IF ( @type2 = 2 )
BEGIN
SELECT @value35 = SUM(amount
), @value36 = SUM(act_amount
)
FROM dbo
.Ccommission1_X2
WHERE (
eid
IN ( SELECT eid
FROM dbo
.eleader_sales
WHERE groupleader
= @eid )
and eid
<> @eid
)
AND type = 2
AND DATEDIFF
(mm
, @term, term
) = 0;
END;
ELSE
IF ( @type2 IN ( 1 ) )
BEGIN
SELECT @value35 = isnull
(a
.amount
,0) + isnull
(b
.amount
,0), @value36 = isnull
(a
.act_amount
,0) + isnull
(b
.act_amount
,0)
FROM (
SELECT SUM(amount
) AS amount
, SUM(act_amount
) act_amount
FROM dbo
.Ccommission1_X2
WHERE type = 2
AND eid
= @eid
AND DATEDIFF
(mm
, @term, term
) = 0
) a
,
(
SELECT SUM(amount
) / ISNULL
(@num, 1) AS amount
,
SUM(act_amount
) / ISNULL
(@num, 1) act_amount
FROM dbo
.Ccommission1_X2
WHERE ISNULL
(eid
, 0) = 0
AND type = 2
AND DATEDIFF
(mm
, @term, term
) = 0
AND shop_num
IN ( SELECT shopcode
FROM dbo
.oDepartment
WHERE DepID
= (
SELECT DepID
FROM dbo
.eEmployee
WHERE EID
= @eid
) )
) b
; END;
IF ( @type2 IN ( 3, 4 ) )
BEGIN
SELECT @value33 = SUM(amount
), @value34 = SUM(act_amount
)
FROM dbo
.Ccommission2_X2
WHERE shop_num
IN ( SELECT shopcode
FROM dbo
.oDepartment
WHERE DepID
= (
SELECT DepID
FROM dbo
.eEmployee
WHERE EID
= @eid
) )
AND type = 1
AND DATEDIFF
(mm
, @term, term
) = 0;
END;
ELSE
IF ( @type2 = 2 )
BEGIN
SELECT @value33 = SUM(amount
), @value34 = SUM(act_amount
)
FROM dbo
.Ccommission2_X2
WHERE (
eid
IN ( SELECT eid
FROM dbo
.eleader_sales
WHERE groupleader
= @eid )
and eid
<> @eid
)
AND type = 1
AND DATEDIFF
(mm
, @term, term
) = 0;
END;
ELSE
IF ( @type2 = 1 )
BEGIN
SELECT @value33 = isnull
(a
.amount
,0) + isnull
(b
.amount
,0), @value34 = isnull
(a
.act_amount
,0) + isnull
(b
.act_amount
,0)
FROM (
SELECT SUM(amount
) AS amount
, SUM(act_amount
) act_amount
FROM dbo
.Ccommission2_X2
WHERE type = 1
AND eid
= @eid
AND DATEDIFF
(mm
, @term, term
) = 0
) a
,
(
SELECT SUM(amount
) / ISNULL
(@num, 1) AS amount
,
SUM(act_amount
) / ISNULL
(@num, 1) act_amount
FROM dbo
.Ccommission2_X2
WHERE ISNULL
(eid
, 0) = 0
AND type = 1
AND DATEDIFF
(mm
, @term, term
) = 0
AND shop_num
IN ( SELECT shopcode
FROM dbo
.oDepartment
WHERE DepID
= (
SELECT DepID
FROM dbo
.eEmployee
WHERE EID
= @eid
) )
) b
;
END;
IF ( @type2 IN ( 3, 4 ) )
BEGIN
SELECT @value37 = SUM(amount
), @value38 = SUM(act_amount
)
FROM dbo
.Ccommission2_X2
WHERE shop_num
IN ( SELECT shopcode
FROM dbo
.oDepartment
WHERE DepID
= (
SELECT DepID
FROM dbo
.eEmployee
WHERE EID
= @eid
) )
AND type = 2
AND DATEDIFF
(mm
, @term, term
) = 0;
END;
ELSE
IF ( @type2 = 2 )
BEGIN
SELECT @value37 = SUM(amount
), @value38 = SUM(act_amount
)
FROM dbo
.Ccommission2_X2
WHERE (
eid
IN ( SELECT eid
FROM dbo
.eleader_sales
WHERE groupleader
= @eid )
and eid
<> @eid
)
AND type = 2
AND DATEDIFF
(mm
, @term, term
) = 0;
END;
ELSE
IF ( @type2 IN ( 1 ) )
BEGIN
SELECT @value37 = isnull
(a
.amount
,0) + isnull
(b
.amount
,0), @value38 = isnull
(a
.act_amount
,0) + isnull
(b
.act_amount
,0)
FROM (
SELECT SUM(amount
) AS amount
, SUM(act_amount
) act_amount
FROM dbo
.Ccommission2_X2
WHERE type = 2
AND eid
= @eid
AND DATEDIFF
(mm
, @term, term
) = 0
) a
,
(
SELECT SUM(amount
) / ISNULL
(@num, 1) AS amount
,
SUM(act_amount
) / ISNULL
(@num, 1) act_amount
FROM dbo
.Ccommission2_X2
WHERE ISNULL
(eid
, 0) = 0
AND type = 2
AND DATEDIFF
(mm
, @term, term
) = 0
AND shop_num
IN ( SELECT shopcode
FROM dbo
.oDepartment
WHERE DepID
= (
SELECT DepID
FROM dbo
.eEmployee
WHERE EID
= @eid
) )
) b
;
END;
IF ( @type = 31 )
SET @value = @value31;
ELSE
IF ( @type = 32 )
SET @value = @value32;
ELSE
IF ( @type = 35 )
SET @value = @value35;
ELSE
IF ( @type = 36 )
SET @value = @value36;
IF ( @type = 33 )
SET @value = @value33;
ELSE
IF ( @type = 34 )
SET @value = @value34;
ELSE
IF ( @type = 37 )
SET @value = @value37;
ELSE
IF ( @type = 38 )
SET @value = @value38;
RETURN ISNULL
(@value,0);
END;
转载请注明原文地址:https://ipadbbs.8miu.com/read-19744.html