SELECT
ISNULL( u_factory_profitrate.deptid, v_temp_1.deptid ) AS deptid,
ISNULL( u_factory_profitrate.bednet_or_mattress,@kind ) AS bednet_or_mattress,
ISNULL( u_factory_profitrate.bednettypeid_mattresstypeid, v_temp_1.bednettypeid ) AS bednettypeid_mattresstypeid,
ISNULL( u_factory_profitrate.profitrate, 0 ) AS profitrate,
u_factory_profitrate.createtime,
u_factory_profitrate.createby,
v_temp_1.deptname,
v_temp_1.typename
FROM
u_factory_profitrate
INNER JOIN (
SELECT
u_dept.deptid,
v_temp.bednettypeid,
u_dept.deptname,
v_temp.typename
FROM
u_dept,
(
SELECT
1 AS kind,
u_mattress_type.mattresstypeid AS bednettypeid,
u_mattress_type.typename
FROM
u_mattress_type UNION ALL
SELECT
0 AS kind,
u_bednet_type.bednettypeid,
u_bednet_type.typename
FROM
u_bednet_type
) v_temp
WHERE
@kind = v_temp.kind
) v_temp_1 ON u_factory_profitrate.deptid = v_temp_1.deptid
AND u_factory_profitrate.bednettypeid_mattresstypeid = v_temp_1.bednettypeid
ISNULL(u_factory_profitrate.bednet_or_mattress,@kind) = @kind
u_factory_profitrate.deptid = @arg_deptid
u_factory_profitrate.bednettypeid_mattresstypeid = @arg_bednettypeid_mattresstypeid