I am using SQL Server 2008. For getting some rows I am using a CTE in my stored procedure.
;WITH
CTE AS (
SELECT BrokerId ,
RankId ,
BrokerName ,
RankName ,
BrokerCode ,
IntroducerCode ,
CscName ,
MAX(SIP) AS SIP ,
MAX(Fresh) AS Fresh ,
MAX(FY) AS FY ,
MAX(SY) AS SY ,
MAX(TY) AS TY ,
CscId ,
Promotive ,
NoOfPromotive ,
PlanTypeName ,
PlanYear
FROM @tmp
GROUP BY BrokerId ,
RankId ,
BrokerName ,
RankName ,
BrokerCode ,
IntroducerCode ,
CscName ,
CscId ,
Promotive ,
NoOfPromotive ,
PlanTypeName ,
PlanYear
)
SELECT BrokerId ,
RankId ,
BrokerName ,
RankName ,
BrokerCode ,
IntroducerCode ,
CscName ,
SUM(SIP) AS 'SIP' ,
SUM(Fresh) AS 'Fresh' ,
SUM(FY) AS 'FY' ,
SUM(SY) AS 'SY' ,
SUM(TY) AS 'TY' ,
Promotive ,
Total = ISNULL(( SUM(SIP) ), 0) + ISNULL(( SUM(Fresh) ), 0)
+ ISNULL(( SUM(FY) ), 0) + ISNULL(( SUM(SY) ), 0)
+ ISNULL(( SUM(TY) ), 0) ,
NoOfPromotive ,
PlanTypeName ,
PlanYear ,
CscId
FROM CTE
GROUP BY BrokerId ,
RankId ,
BrokerName ,
RankName ,
BrokerCode ,
IntroducerCode ,
CscName ,
Promotive ,
NoOfPromotive ,
PlanTypeName ,
PlanYear ,
CscId
ORDER BY PlanTypeName
It gives me correct data. Now I want to Insert that data into a table. I have tried like :
INSERT INTO MyTable
( BrokerId ,
RankId ,
BrokerName ,
RankName ,
BrokerCode ,
IntroducerCode ,
CscName ,
SIP ,
Fresh ,
FY ,
SY ,
TY ,
Promotive ,
Total ,
NoOfPromotive ,
PlanTypeName ,
PlanYear ,
CscId
)
( SELECT BrokerId ,
RankId ,
BrokerName ,
RankName ,
BrokerCode ,
IntroducerCode ,
CscName ,
SUM(SIP) AS 'SIP' ,
SUM(Fresh) AS 'Fresh' ,
SUM(FY) AS 'FY' ,
SUM(SY) AS 'SY' ,
SUM(TY) AS 'TY' ,
Promotive ,
Total = ISNULL(( SUM(SIP) ), 0) + ISNULL(( SUM(Fresh) ), 0)
+ ISNULL(( SUM(FY) ), 0) + ISNULL(( SUM(SY) ), 0)
+ ISNULL(( SUM(TY) ), 0) ,
NoOfPromotive ,
PlanTypeName ,
PlanYear ,
CscId
FROM CTE
GROUP BY BrokerId ,
RankId ,
BrokerName ,
RankName ,
BrokerCode ,
IntroducerCode ,
CscName ,
Promotive ,
NoOfPromotive ,
PlanTypeName ,
PlanYear ,
CscId
)
But It gives me error. How can I Insert record in table? Thanks.