Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 会计年度计算_Sql_Sql Server_Database_Select_Database Design - Fatal编程技术网

Sql 会计年度计算

Sql 会计年度计算,sql,sql-server,database,select,database-design,Sql,Sql Server,Database,Select,Database Design,我公司希望将报告的会计年度计算从2017-18年3月1日更改为2017-18年1月1日,这将与日历年一致 我很可能会将此信息提交给最初设计查询的顾问,该顾问将数据从另一个数据库中的一个表带入一个表,并在报告数据库中查看,但我希望更好地理解查询,请参见附件 我是否需要在所有与日期相关的报表上或仅在会计年度报表上将月份更改为1 如有任何意见和建议,将不胜感激 非常感谢你 USE [ABC_Cube] GO /****** Object: View [dbo].[ABC_Fact] Scrip

我公司希望将报告的会计年度计算从2017-18年3月1日更改为2017-18年1月1日,这将与日历年一致

我很可能会将此信息提交给最初设计查询的顾问,该顾问将数据从另一个数据库中的一个表带入一个表,并在报告数据库中查看,但我希望更好地理解查询,请参见附件

我是否需要在所有与日期相关的报表上或仅在会计年度报表上将月份更改为1

如有任何意见和建议,将不胜感激

非常感谢你

USE [ABC_Cube]
GO
/****** Object:  View [dbo].[ABC_Fact]    Script Date: 04/06/2017          
11:28:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER view [dbo].[ABC_Fact] as 
-- Start Binder Data
Select 
'Binder Record' as RowType
,CASE when b.NewOrRenew ='N' THEN 'New Business' ELSE 'Renewal'  end  as       
RowSubType
,CASE when b.Underwriteruserid IS NULL THEN 'N/A' ELSE   
b.Underwriteruserid END AS userID
,CASE when u.username IS NULL THEN 'N/A' ELSE u.username END  AS username
,CASE when B.ACCOUNTID IS NULL THEN 'N/A' ELSE B.ACCOUNTID END  AS 
ACCOUNTID
,CASE when a.account IS NULL THEN 'N/A' ELSE a.account END as Agency
,CASE when ad.CITY IS NULL THEN 'N/A' ELSE ad.CITY END as CITY
,CASE when ad.state IS NULL THEN 'N/A' ELSE ad.state END as State
,CASE when ad.POSTALCODE IS NULL THEN 'N/A' ELSE ad.POSTALCODE END as ZIP
,CASE when ad.COUNTRY IS NULL THEN 'US' ELSE ad.state END as COUNTRY
,CASE when c.ContactID IS NULL THEN 'N/A' ELSE c.ContactID END as 
contactID
,CASE when c.firstname+' '+c.lastname IS NULL THEN 'N/A' ELSE 
c.firstname+' '+c.lastname END as Agent
,b.HouseNumber as House
,B.DEPTARTMENTCODE
,co.companycode
,coalesce(co.companyname1,'')+' '+coalesce(co.companyname2,'')+' 
('+co.companycode+')' as CompanyName
,b.SubmissionNumber 
,b.Underwriter
,b.Insured1
,b.PolicyTypeCode
,b.Submissioncreatedate as SubmitDate
,month(b.Submissioncreatedate) as Submit_Month
,year(b.Submissioncreatedate) as Submit_Year
,b.FirstQuoteDate
,month(b.FirstQuoteDate) as FirstQuote_Month
,year(b.FirstQuoteDate) as FirstQuote_Year
,b.BoundDate
,month(b.BoundDate) as Bound_Month
,year(b.BoundDate) as Bound_Year
,b.PolicyEffectiveDate
,month(b.PolicyEffectiveDate) as Effective_Month
,year(b.PolicyEffectiveDate) as Effective_Year
,case when (month(b.PolicyEffectiveDate)<=3) then 
year(b.PolicyEffectiveDate)-1 else year(b.PolicyEffectiveDate) end as 
Effective_FiscalYear
,b.PolicyExpirationDate
,month(b.PolicyExpirationDate) as Expiration_Month
,year(b.PolicyExpirationDate) as Expiration_Year
,case when (month(b.PolicyExpirationDate)<=3) then 
year(b.PolicyExpirationDate)-1 else year(b.PolicyExpirationDate) end as 
Expiration_FiscalYear
,CASE when b.LOBCode  IS NULL THEN 'N/A' ELSE b.LOBCode end as LOBCode
,CASE when b.LOBName  IS NULL THEN 'N/A' ELSE b.LOBName end as LOBName
,CASE when B.LOBClass IS NULL THEN 'N/A' ELSE B.LOBClass end as LOBClass
,CASE when b.IndustryDOBCode  IS NULL THEN 'N/A' ELSE b.IndustryDOBCode 
end AS DOBCode 
,CASE when b.IndustryDOBName IS NULL THEN 'N/A' ELSE b.IndustryDOBName 
end AS DOBName 
,CASE when B.IndustryDOBClass IS NULL THEN 'N/A' ELSE B.IndustryDOBClass  
end as DOBClass 
,case 
    when SubmissionStatusCode='SUB' then 'Submitted'
    when SubmissionStatusCode='QUO' then 'Quoted'
    when SubmissionStatusCode='BIN' then 'Bound'
    when SUBSTRING(SubmissionStatusCode,1,1)='T' then 'Termintated'
    else 'Other'
end SubmissionStatus
,SubmissionStatusCode
,case when (FIRSTQUOTEDATE is not null or submissionstatuscode = 'BIN')  
then 'Y' else 'N' end Quoted
,0 AS ActivityCounter
,CASE when b.ExpSubmissionPolicyPremium IS NULL THEN 0 ELSE 
b.ExpSubmissionPolicyPremium END AS ExpSubmissionPolicyPremium
,1 SubCounter
,CurrentPremium SubDol
,case when (FIRSTQUOTEDATE is not null or submissionstatuscode = 'BIN') 
then 1 else 0 end QuoteCounter
,case when (FIRSTQUOTEDATE is not null or submissionstatuscode = 'BIN') 
then CurrentPremium else 0 end QuoteDol
,case when SubmissionStatusCode='BIN' then 1 else 0 end BoundCounter
,case when SubmissionStatusCode='BIN' then CurrentPremium else 0 end 
BoundDol
,case when SUBSTRING(SubmissionStatusCode,1,1)='T' then 1 else 0 end 
TerminateCounter
,case when SUBSTRING(SubmissionStatusCode,1,1)='T' then CurrentPremium 
else 0 end TerminateDol
,case when b.CURRENTHOUSECOMMISSION IS not NULL then 
CURRENTHOUSECOMMISSION else 0 end SubCommission
,case when (FIRSTQUOTEDATE is not null or submissionstatuscode = 'BIN') 
and b.CURRENTHOUSECOMMISSION IS not NULL then CURRENTHOUSECOMMISSION else 
0 end QuoteCommission
,case when SubmissionStatusCode='BIN' and b.CURRENTHOUSECOMMISSION IS not 
NULL then CURRENTHOUSECOMMISSION else 0 end BoundCommission
,case when SUBSTRING(SubmissionStatusCode,1,1)='T' then 
CURRENTHOUSECOMMISSION else 0 end TerminateCommission
-- Projected
,0 AS Projected_ExpSubmissionPolicyPremium
,0 AS Projected_SubCounter
,0 AS Projected_SubDol
,0 AS Projected_QuoteCounter
,0 AS Projected_QuoteDol
,0 AS Projected_BoundCounter
,0 AS Projected_BoundDol
,0 AS Projected_TerminateCounter
,0 AS Projected_TerminateDol
,0 AS Projected_SubCommission
,0 AS Projected_QuoteCommission
,0 AS Projected_BoundCommission
,0 AS Projected_TerminateCommission

from ABCXYZ.SYSDBA.c_Binder b
left join ABCXYZ.SYSDBA.account a on a.accountid =b.accountid
left join ABCXYZ.SYSDBA.address ad on ad.addressid =a.addressid
left join ABCXYZ.SYSDBA.Contact c on c.contactid =b.contactid
left join ABCXYZ.SYSDBA.USERInfo u on u.userid  =b.Underwriteruserid
left join company co on co.companycode=b.companycode
union all
-- New Business Projections
Select 
'Projection' as RowType
,'New Business' as RowSubType
,up.userID
,u.username
,'N/A' AS ACCOUNTID
,'N/A' AS Agency
,'N/A' AS  CITY
,'N/A' AS State
,'N/A' AS ZIP
,'N/A' AS COUNTRY
,'N/A' AS contactID
,'N/A' Agent
,coalesce(substring(u.division,1,2),'N/A')  AS House
,'N/A' AS DEPTARTMENTCODE
,'N/A' AS companycode
,'N/A' AS CompanyName
,'N/A' AS SubmissionNumber 
,up.usertext1 AS Underwriter
,'N/A' AS Insured1
,'N/A' AS PolicyTypeCode
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and    
month(getdate())>3) 
         then 
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000),1)
     when (mn.month>3 and month(getdate())<=3) 
         THEN 
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000-
1),1)
     when (mn.month<=3 and month(getdate())>3) 
         THEN 

convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000+1),
1) end as SubmitDate,mn.month as Submit_Month
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and    
month(getdate())>3) 

convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000+1),
1) end as SubmitDate,mn.month as Submit_Month
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and
 month(getdate())>3)
 then YEAR(getdate())
     when (mn.month>3 and month(getdate())<=3) 
         THEN YEAR(getdate())-1
     when (mn.month<=3 and month(getdate())>3) 
         THEN YEAR(getdate())+1
end as Submit_Year
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and  
month(getdate())>3) 
         then 
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000),1)
     when (mn.month>3 and month(getdate())<=3) 
         THEN  
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000- 
1),1)
     when (mn.month<=3 and month(getdate())>3) 
         THEN    
 convert(datetime,mn.month+"/01/"convert(char(4),YEAR(getdate())-2000+1),
 1) end as FirstQuoteDate
,mn.month as FirstQuote_Month
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and  
month(getdate())>3) 
         then YEAR(getdate())
     when (mn.month>3 and month(getdate())<=3) 
         THEN YEAR(getdate())-1
     when (mn.month<=3 and month(getdate())>3) 
         THEN YEAR(getdate())+1
end as FirstQuote_Year
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and 
month(getdate())>3) 
         then  
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000),1)
     when (mn.month>3 and month(getdate())<=3) 
         THEN  
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000-
1),1)
     when (mn.month<=3 and month(getdate())>3) 
         THEN 
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000+1),
1)end as BoundDate
,mn.month as Bound_Month
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and 
month(getdate())>3) 
         then YEAR(getdate())
     when (mn.month>3 and month(getdate())<=3) 
         THEN YEAR(getdate())-1
     when (mn.month<=3 and month(getdate())>3) 
         THEN YEAR(getdate())+1
end as Bound_Year
    ,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and  
month(getdate())>3) 
         then  
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000),1)
     when (mn.month>3 and month(getdate())<=3) 
         THEN  
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000-
1),1)
     when (mn.month<=3 and month(getdate())>3) 
         THEN  
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000+1),   
1)
end as PolicyEffectiveDate
,mn.month as Effective_Month
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and   
month(getdate())>3) 
         then YEAR(getdate())
     when (mn.month>3 and month(getdate())<=3) 
         THEN YEAR(getdate())-1
     when (mn.month<=3 and month(getdate())>3) 
         THEN YEAR(getdate())+1
end as Effective_Year
,case when (Month(GETDATE())<=3)
    then YEAR(getdate())-1
    else
        YEAR(getdate())
    end
as  Effective_FiscalYear
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and  
month(getdate())>3) 
         then   
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000+1),     
1) when (mn.month>3 and month(getdate())<=3) 
THEN  
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000),1)
 when (mn.month<=3 and month(getdate())>3) 
         THEN   
convert(datetime,mn.month+'/01/'+convert(char(4),YEAR(getdate())-2000+2),    
1)
end as PolicyExpirationDate
,mn.month as Expiration_Month
,case when (mn.month<=3 and month(getdate())<=3) or (mn.month>3 and  
month(getdate())>3) 
         then YEAR(getdate())+1
     when (mn.month>3 and month(getdate())<=3) 
         THEN YEAR(getdate())
     when (mn.month<=3 and month(getdate())>3) 
         THEN YEAR(getdate())+2
end as Expiration_Year
,case when (Month(GETDATE())<=3)
        then YEAR(getdate())
        else
            YEAR(getdate())+1
        end
    as  Expiration_FiscalYear
,'N/A' AS LOBCode
,'N/A' AS LOBName
,'N/A' AS LOBClass
,'N/A' AS DOBCode
,'N/A' AS DOBName
,'N/A' AS DOBClass
,'Bound' AS  SubmissionStatus
,'BIN' AS SubmissionStatusCode
,'Y' as Quoted
,0 AS ActivityCounter   
---- Actual
,0 AS ExpSubmissionPolicyPremium
,0 AS SubCounter
,0 AS SubDol
,0 AS QuoteCounter
,0 AS QuoteDol
,0 AS BoundCounter
,0 as BoundDol
,0 AS TerminateCounter
,0 AS TerminateDol
,0 AS SubCommission
,0 AS QuoteCommission
,0 AS BoundCommission
,0 AS TerminateCommission
-- Projected
,0 AS Projected_ExpSubmissionPolicyPremium
,0 AS Projected_SubCounter
,0 AS Projected_SubDol
,0 AS Projected_QuoteCounter
,0 AS Projected_QuoteDol
,0 AS Projected_BoundCounter
,CASE when up.USERNUM1 IS NULL THEN 0 ELSE (up.USERNUM1/12) END AS  
Projected_BoundDol
,0 AS Projected_TerminateCounter
,0 AS Projected_TerminateDol
,0 AS Projected_SubCommission
,0 AS Projected_QuoteCommission
,(up.USERNUM1/12)*up.usernum2 AS Projected_BoundCommission
,0 AS Projected_TerminateCommission
from ABCXYZ.SYSDBA.USERPROFILE up 
left join ABCXYZ.SYSDBA.USERInfo u on u.userid = up.userid
join dbo.MonthNumber mn on 1=1
where up.usertext1 is not null AND up.usernum1 is not null AND   
up.usernum1>0
-- Renewal Bussness Projections
UNION ALL
Select 
'Projection' as RowType
,'Renewal'  as RowSubType
,CASE when b.Underwriteruserid IS NULL THEN 'N/A' ELSE 
b.Underwriteruserid END AS userID
,CASE when u.username IS NULL THEN 'N/A' ELSE u.username END  AS username
,CASE when B.ACCOUNTID IS NULL THEN 'N/A' ELSE B.ACCOUNTID END  AS 
ACCOUNTID
,CASE when a.account IS NULL THEN 'N/A' ELSE a.account END as Agency
,CASE when ad.CITY IS NULL THEN 'N/A' ELSE ad.CITY END as CITY
,CASE when ad.state IS NULL THEN 'N/A' ELSE ad.state END as State
,CASE when ad.POSTALCODE IS NULL THEN 'N/A' ELSE ad.POSTALCODE END as ZIP
,CASE when ad.COUNTRY IS NULL THEN 'US' ELSE ad.state END as COUNTRY
,CASE when c.ContactID IS NULL THEN 'N/A' ELSE c.ContactID END as 
contactID
,CASE when c.firstname+' '+c.lastname IS NULL THEN 'N/A' ELSE  
c.firstname+' '+c.lastname END as Agent
,b.HouseNumber as House
,B.DEPTARTMENTCODE
,co.companycode
,coalesce(co.companyname1,'')+' '+coalesce(co.companyname2,'')+' 
('+co.companycode+')' as CompanyName
,b.SubmissionNumber 
,b.Underwriter
,b.Insured1
,b.PolicyTypeCode
,DATEADD(YYYY,1,b.Submissioncreatedate) as SubmitDate
,month(DATEADD(YYYY,1,b.Submissioncreatedate)) as Submit_Month
,year(DATEADD(YYYY,1,b.Submissioncreatedate)) as Submit_Year
,DATEADD(YYYY,1,b.FirstQuoteDate) AS FirstQuoteDate
,month(DATEADD(YYYY,1,b.FirstQuoteDate)) as FirstQuote_Month
,year(DATEADD(YYYY,1,b.FirstQuoteDate)) as FirstQuote_Year
,DATEADD(YYYY,1,b.BoundDate) AS BoundDate
,month(DATEADD(YYYY,1,b.BoundDate)) as Bound_Month
,year(DATEADD(YYYY,1,b.BoundDate)) as Bound_Year
,DATEADD(YYYY,1,b.PolicyEffectiveDate) as PolicyEffectiveDate
,month(b.PolicyEffectiveDate) as Effective_Month 
,year(b.PolicyEffectiveDate)+1 as Effective_Year
,case when (month(b.PolicyEffectiveDate))<=3 then 
year(b.PolicyEffectiveDate) else  year(b.PolicyEffectiveDate)+1 end as  
Effective_FiscalYear
,DATEADD(YYYY,1,b.PolicyExpirationDate) as PolicyExpirationDate
,month(b.PolicyExpirationDate) as  Expiration_Month
,year(b.PolicyExpirationDate)+1 as  Expiration_Year
,case when (month(b.PolicyExpirationDate))<=3 then 
year(b.PolicyExpirationDate) else  year(b.PolicyExpirationDate)+1 end as 
Expiration_FiscalYear
,CASE when b.LOBCode  IS NULL THEN 'N/A' ELSE b.LOBCode end as LOBCode
,CASE when b.LOBName  IS NULL THEN 'N/A' ELSE b.LOBName end as LOBName
,CASE when B.LOBClass IS NULL THEN 'N/A' ELSE B.LOBClass end as LOBClass
,CASE when b.IndustryDOBCode  IS NULL THEN 'N/A' ELSE b.IndustryDOBCode 
end AS DOBCode 
,CASE when b.IndustryDOBName IS NULL THEN 'N/A' ELSE b.IndustryDOBName  
end AS DOBName 
,CASE when B.IndustryDOBClass IS NULL THEN 'N/A' ELSE B.IndustryDOBClass   
end as DOBClass 
,case 
    when SubmissionStatusCode='SUB' then 'Submitted'
    when SubmissionStatusCode='QUO' then 'Quoted'
    when SubmissionStatusCode='BIN' then 'Bound'
    when SUBSTRING(SubmissionStatusCode,1,1)='T' then 'Termintated'
    else 'Other'
end SubmissionStatus
,SubmissionStatusCode
,case when (FIRSTQUOTEDATE is not null or submissionstatuscode = 'BIN')   
then 'Y' else 'N' end Quoted
,0 AS ActivityCounter
---- Actual
,0 AS ExpSubmissionPolicyPremium
,0 AS SubCounter
,0 AS SubDol
,0 AS QuoteCounter
,0 AS QuoteDol
,0 AS BoundCounter
,0 as BoundDol
,0 AS TerminateCounter
,0 AS TerminateDol
,0 AS SubCommission
,0 AS QuoteCommission
,0 AS BoundCommission
,0 AS TerminateCommission
--- Projected
,CASE when b.CurrentPremium IS NULL THEN 0 ELSE b.CurrentPremium END AS  
Projected_ExpSubmissionPolicyPremium
,0 as Projected_SubCounter
,0 as Projected_SubDol
,0 AS Projected_QuoteCounter
,0 AS Projected_QuoteDol
,case when SubmissionStatusCode='BIN' then 1*up.usernum3 else 0 end AS  
Projected_BoundCounter
,case when SubmissionStatusCode='BIN' then CurrentPremium*up.usernum3   
else 0 end AS Projected_BoundDol
,0 as Projected_TerminateCounter
,0 as Projected_TerminateDol
,0 AS Projected_SubCommission
,0 AS Projected_QuoteCommission
,case when SubmissionStatusCode='BIN' and b.CURRENTHOUSECOMMISSION IS not  
NULL then CURRENTHOUSECOMMISSION*up.usernum3 else 0 end AS   
Projected_BoundCommission
,0 AS Projected_TerminateCommission
from ABCXYZ.SYSDBA.c_Binder b
left join ABCXYZ.SYSDBA.account a on a.accountid =b.accountid
left join ABCXYZ.SYSDBA.address ad on ad.addressid =a.addressid
left join ABCXYZ.SYSDBA.Contact c on c.contactid =b.contactid
left join ABCXYZ.SYSDBA.USERInfo u on u.userid  =b.Underwriteruserid
left join ABCXYZ.SYSDBA.USERPROFILE up on uP.userid  =b.Underwriteruserid
left join company co on co.companycode=b.companycode
where up.usertext1 is not null AND up.usernum3 is not null AND   
up.usernum3>0
and case when (month(b.PolicyEffectiveDate))<=3 then  
year(b.PolicyEffectiveDate) else  year(b.PolicyEffectiveDate)+1 end 
= case when (Month(GETDATE())<=3)
then YEAR(getdate())-1
else
    YEAR(getdate())
end
Union all
-- Open Activity Data
Select 
'Open Activity' as RowType
,at.atype as RowSubType
,CASE when h.userID IS NULL THEN 'N/A' ELSE h.userID END AS userID
,CASE when u.username IS NULL THEN 'N/A' ELSE u.username END  AS username
,CASE when h.ACCOUNTID IS NULL THEN 'N/A' ELSE h.ACCOUNTID END  AS 
ACCOUNTID
,CASE when a.account IS NULL THEN 'N/A' ELSE a.account END as Agency
,CASE when ad.CITY IS NULL THEN 'N/A' ELSE ad.CITY END as CITY
,CASE when ad.state IS NULL THEN 'N/A' ELSE ad.state END as State
,CASE when ad.POSTALCODE IS NULL THEN 'N/A' ELSE ad.POSTALCODE END as ZIP
,CASE when ad.COUNTRY IS NULL THEN 'US' ELSE ad.state END as COUNTRY
,CASE when c.ContactID IS NULL THEN 'N/A' ELSE c.ContactID END as  
contactID
,CASE when c.firstname+' '+c.lastname IS NULL THEN 'N/A' ELSE  
c.firstname+' '+c.lastname END as Agent
,coalesce(substring(u.division,1,2),'N/A')  AS House
,'N/A' AS DEPTARTMENTCODE
,'N/A' AS companycode
,'N/A' AS CompanyName
,'N/A' AS SubmissionNumber 
,up.usertext1 AS Underwriter
,'N/A' AS Insured1
,'N/A' as PolicyTypeCode
,h.startdate as SubmitDate
,month(h.startdate) as Submit_Month
,year(h.startdate) as Submit_Year
,h.startdate as FirstQuoteDate
,month(h.startdate) as FirstQuote_Month
,year(h.startdate) as FirstQuote_Year
,h.startdate as BoundDate
,month(h.startdate) as Bound_Month
,year(h.startdate) as  Bound_Year
,h.startdate as PolicyEffectiveDate
,month(h.startdate) as Effective_Month
,year(h.startdate) as Effective_Year
,case when (month(h.startdate)<=3) then year(h.startdate)-1 else 
year(h.startdate) end as Effective_FiscalYear
,h.startdate as PolicyExpirationDate
,month(h.startdate) as Expiration_Month
,year(h.startdate) as Expiration_Year
,case when (month(h.startdate)<=3) then year(h.startdate)-1 else 
year(h.startdate) end as Expiration_FiscalYear
,'N/A' AS LOBCode
,'N/A' AS LOBName
,'N/A' AS LOBClass
,'N/A' AS DOBCode
,'N/A' AS DOBName
,'N/A' AS DOBClass
,'N/A' AS  SubmissionStatus
,'N/A' AS SubmissionStatusCode
,'N/A' as Quoted
,1 AS ActivityCounter
,0 AS ExpSubmissionPolicyPremium
,0 AS SubCounter
,0 AS SubDol
,0 AS QuoteCounter
,0 AS QuoteDol
,0 AS BoundCounter
,0 AS BoundDol
,0 AS TerminateCounter
,0 AS TerminateDol
,0 AS SubCommission
,0 AS QuoteCommission
,0 AS BoundCommission
,0 AS TerminateCommission
-- Projected
,0 AS Projected_ExpSubmissionPolicyPremium
,0 AS Projected_SubCounter
,0 AS Projected_SubDol
,0 AS Projected_QuoteCounter
,0 AS Projected_QuoteDol
,0 AS Projected_BoundCounter
,0 AS Projected_BoundDol
,0 AS Projected_TerminateCounter
,0 AS Projected_TerminateDol
,0 AS Projected_SubCommission
,0 AS Projected_QuoteCommission
,0 AS Projected_BoundCommission
,0 AS Projected_TerminateCommission
from ABCXYZ.sysdba.activity h
join (select pld.ID as Type,pld.TEXT as AType 
    from ABCXYZ.sysdba.PICKLIST pld
    join  ABCXYZ.sysdba.PICKLIST plh on plh.itemid=pld.PICKLISTID
    where plh.PICKLISTID='PICKLISTLIST' and plh.TEXT='Activity Types') AT    
on h.TYPE=AT.Type
left join ABCXYZ.SYSDBA.account a on a.accountid =h.accountid
left join ABCXYZ.SYSDBA.address ad on ad.addressid =a.addressid
left join ABCXYZ.SYSDBA.Contact c on c.contactid =h.contactid
left join ABCXYZ.SYSDBA.USERPROFILE up on up.userid =h.userID
left join ABCXYZ.SYSDBA.USERInfo u on u.userid  =h.userID
Union all
 -- Completed Activity Data

 Select 
'Completed  Activity' as RowType
,at.atype as RowSubType
,CASE when h.userID IS NULL THEN 'N/A' ELSE h.userID END AS userID
,CASE when u.username IS NULL THEN 'N/A' ELSE u.username END  AS username
,CASE when h.ACCOUNTID IS NULL THEN 'N/A' ELSE h.ACCOUNTID END  AS 
ACCOUNTID
,CASE when a.account IS NULL THEN 'N/A' ELSE a.account END as Agency
,CASE when ad.CITY IS NULL THEN 'N/A' ELSE ad.CITY END as CITY
,CASE when ad.state IS NULL THEN 'N/A' ELSE ad.state END as State
,CASE when ad.POSTALCODE IS NULL THEN 'N/A' ELSE ad.POSTALCODE END as ZIP
,CASE when ad.COUNTRY IS NULL THEN 'US' ELSE ad.state END as COUNTRY
,CASE when c.ContactID IS NULL THEN 'N/A' ELSE c.ContactID END as 
contactID
,CASE when c.firstname+' '+c.lastname IS NULL THEN 'N/A' ELSE 
c.firstname+' '+c.lastname END as Agent
,coalesce(substring(u.division,1,2),'N/A')  AS House
,'N/A' AS DEPTARTMENTCODE
,'N/A' AS companycode
,'N/A' AS CompanyName
,'N/A' AS SubmissionNumber 
,up.usertext1 AS Underwriter
,'N/A' AS Insured1
,'N/A' as PolicyTypeCode
,h.COMPLETEDDATE as SubmitDate
,month(h.COMPLETEDDATE) as Submit_Month
,year(h.COMPLETEDDATE) as Submit_Year
,h.COMPLETEDDATE as FirstQuoteDate
,month(h.COMPLETEDDATE) as FirstQuote_Month
,year(h.COMPLETEDDATE) as FirstQuote_Year
,h.COMPLETEDDATE as BoundDate
,month(h.COMPLETEDDATE) as Bound_Month
,year(h.COMPLETEDDATE) as Bound_Year

,h.COMPLETEDDATE as PolicyEffectiveDate
,month(h.COMPLETEDDATE) as Effective_Month
,year(h.COMPLETEDDATE) as Effective_Year
,case when (month(h.COMPLETEDDATE)<=3) then year(h.COMPLETEDDATE)-1 else 
year(h.COMPLETEDDATE) end as Effective_FiscalYear
,h.COMPLETEDDATE as PolicyExpirationDate
,month(h.COMPLETEDDATE) as Expiration_Month
,year(h.COMPLETEDDATE) as Expiration_Year
,case when (month(h.COMPLETEDDATE)<=3) then year(h.COMPLETEDDATE)-1 else  
year(h.COMPLETEDDATE) end as Expiration_FiscalYear
,'N/A' AS LOBCode
,'N/A' AS LOBName
,'N/A' AS LOBClass
,'N/A' AS DOBCode
,'N/A' AS DOBName
,'N/A' AS DOBClass
,'N/A' AS  SubmissionStatus
,'N/A' AS SubmissionStatusCode
,'N/A' as Quoted
,1 AS ActivityCountera
,0 AS ExpSubmissionPolicyPremium
,0 AS SubCounter
,0 AS SubDol
,0 AS QuoteCounter
,0 AS QuoteDol
,0 AS BoundCounter
,0 AS BoundDol
,0 AS TerminateCounter
,0 AS TerminateDol
,0 AS SubCommission
,0 AS QuoteCommission
,0 AS BoundCommission
,0 AS TerminateCommission
-- Projected
,0 AS Projected_ExpSubmissionPolicyPremium
,0 AS Projected_SubCounter
,0 AS Projected_SubDol
,0 AS Projected_QuoteCounter
,0 AS Projected_QuoteDol
,0 AS Projected_BoundCounter
,0 AS Projected_BoundDol
,0 AS Projected_TerminateCounter
,0 AS Projected_TerminateDol
,0 AS Projected_SubCommission
,0 AS Projected_QuoteCommission
,0 AS Projected_BoundCommission
,0 AS Projected_TerminateCommission
from ABCXYZ.sysdba.history h
join (select pld.ID as Type,pld.TEXT as AType 
    from ABCXYZ.sysdba.PICKLIST pld
    join  ABCXYZ.sysdba.PICKLIST plh on plh.itemid=pld.PICKLISTID
    where plh.PICKLISTID='PICKLISTLIST' and plh.TEXT='Activity Types') AT   
on h.TYPE=AT.Type
left join ABCXYZ.SYSDBA.account a on a.accountid =h.accountid
left join ABCXYZ.SYSDBA.address ad on ad.addressid =a.addressid
left join ABCXYZ.SYSDBA.Contact c on c.contactid =h.contactid
left join ABCXYZ.SYSDBA.USERPROFILE up on up.userid =h.userID
left join ABCXYZ.SYSDBA.USERInfo u on u.userid  =h.userID

我看不到任何附件。对不起,应该是现在。这是一个建议,很久以前的。