在SQL Server 2000中尝试UNION ALL时出错

时间:2015-03-20 05:20:48

标签: sql database sql-server-2000 implicit-conversion

美好的一天,

我在SQL Server 2000中执行此查询时遇到了麻烦。

ALTER   procedure [dbo].[spDirectShareholdng]
as
begin

-- query to get the list shares acquired by directors through Allotment (grouped byClient,director,date) for cash

   SELECT DISTINCT  
      CMS_ORGANIZATION.REG_NAME AS [Client Name], 
      CMS_ORGANIZATION.ORG_ACTOR_GUID AS [Client ID], 
      CMS_INDIVIDUAL.FULL_NAME,  'SHARES' AS [STOCK SHARES DEBENTURE], 
--      SUM(ISNULL(SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, 0)) AS [No Of Acquired], 
      ISNULL(SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, 0) AS [No Of Acquired], 
      CMS_ORG_SHARES.SHARE_TYPE, 
      SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, 'HOLDER' AS [HOW HELD], 
       'Allotment' as [Remarks], 
      SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE AS [Acquired Date], 
      'CASH' AS [Acquired Consideration] ,
      'A' AS AcqOrTransf, CMS_MASTER_SETUP.DESCRIPTION As Prefix, CMS_MASTER_SETUP_1.DESCRIPTION As Sufix,CMS_ORG_SHARES.PAR_VALUE, 
      CMS_INDIVIDUAL.GENDER , SAS_SHARES_ALLOTMENT.ISSUED_PRICE_PER_SHARE as [Consideration]
FROM         CMS_ORGANIZATION INNER JOIN
      CMS_SHAREHOLDER ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_SHAREHOLDER.ORG_ACTOR_GUID INNER JOIN
      CMS_INDIVIDUAL ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = CMS_INDIVIDUAL.IND_ACTOR_GUID INNER JOIN
      CMS_SHAREHOLDER_SHAREHOLDING ON 
      CMS_SHAREHOLDER.SHAREHOLDER_PK = CMS_SHAREHOLDER_SHAREHOLDING.SHAREHOLDER_GUID INNER JOIN
      SAS_SHARES_CERT ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = SAS_SHARES_CERT.SHARE_CERT_OWNER_ACTOR_GUID INNER JOIN
      SAS_SHARES_ALLOTMENT ON SAS_SHARES_CERT.ALLOTMENT_GUID = SAS_SHARES_ALLOTMENT.ALLOTMENT_PK INNER JOIN
      PRM_WIP ON SAS_SHARES_ALLOTMENT.WIP_GUID = PRM_WIP.WIP_PK INNER JOIN
      CMS_ORG_SHARES ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_ORG_SHARES.ORG_ACTOR_GUID AND 
      SAS_SHARES_ALLOTMENT.SHARE_GUID = CMS_ORG_SHARES.ORG_SHARES_PK INNER JOIN
      CMS_DIRECTORSHIP ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_DIRECTORSHIP.ORG_ACTOR_GUID AND 
      CMS_INDIVIDUAL.IND_ACTOR_GUID = CMS_DIRECTORSHIP.DIRECTOR_ACTOR_GUID LEFT OUTER JOIN
                      CMS_MASTER_SETUP CMS_MASTER_SETUP_1 ON 
                      CMS_INDIVIDUAL.SUFFIX_GUID = CMS_MASTER_SETUP_1.MASTER_SETUP_PK LEFT OUTER JOIN
                      CMS_MASTER_SETUP ON CMS_INDIVIDUAL.PREFIX_GUID = CMS_MASTER_SETUP.MASTER_SETUP_PK
WHERE     (PRM_WIP.UPDATE_STATUS = 'c') AND (SAS_SHARES_CERT.CURRENT_STATUS = 'N') And CMS_ORGANIZATION.ORG_ACTOR_GUID IN (Select ID from CMS_CLIENT_ID_TEMP)
    AND CMS_DIRECTORSHIP.DATE_OF_CESSATION IS NULL
group by CMS_ORGANIZATION.REG_NAME , CMS_ORGANIZATION.ORG_ACTOR_GUID , CMS_INDIVIDUAL.FULL_NAME, CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,
      CMS_ORG_SHARES.SHARE_TYPE, SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE,CMS_ORG_SHARES.PAR_VALUE,
      SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, CMS_INDIVIDUAL.GENDER, SAS_SHARES_ALLOTMENT.ISSUED_PRICE_PER_SHARE 

UNION ALL 

-- query to get the list shares acquired by directors through Allotment (grouped byClient,director,date) for Non cash

SELECT     CMS_ORGANIZATION.REG_NAME AS [Client Name], CMS_ORGANIZATION.ORG_ACTOR_GUID AS [Client ID], 
      CMS_INDIVIDUAL.FULL_NAME,  'SHARES' AS [STOCK SHARES DEBENTURE], 
--      SUM(ISNULL(SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM, 0)) AS [No Of Acquired], 
ISNULL(SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM, 0) AS [No Of Acquired], 
      CMS_ORG_SHARES.SHARE_TYPE, 
      SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, 'HOLDER' AS [HOW HELD], 
       'Allotment' as [Remarks], 
      SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE AS [Acquired Date], 
      'NON CASH' AS [Acquired Consideration] ,
      'A' AS AcqOrTransf, CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,CMS_ORG_SHARES.PAR_VALUE, CMS_INDIVIDUAL.GENDER, SAS_SHARES_ALLOTMENT.ISSUED_PRICE_PER_SHARE as [Consideration] 
FROM         CMS_ORGANIZATION INNER JOIN
      CMS_SHAREHOLDER ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_SHAREHOLDER.ORG_ACTOR_GUID INNER JOIN
      CMS_INDIVIDUAL ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = CMS_INDIVIDUAL.IND_ACTOR_GUID INNER JOIN
      CMS_SHAREHOLDER_SHAREHOLDING ON 
      CMS_SHAREHOLDER.SHAREHOLDER_PK = CMS_SHAREHOLDER_SHAREHOLDING.SHAREHOLDER_GUID INNER JOIN
      SAS_SHARES_CERT ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = SAS_SHARES_CERT.SHARE_CERT_OWNER_ACTOR_GUID INNER JOIN
      SAS_SHARES_ALLOTMENT ON SAS_SHARES_CERT.ALLOTMENT_GUID = SAS_SHARES_ALLOTMENT.ALLOTMENT_PK INNER JOIN
      PRM_WIP ON SAS_SHARES_ALLOTMENT.WIP_GUID = PRM_WIP.WIP_PK INNER JOIN
      CMS_ORG_SHARES ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_ORG_SHARES.ORG_ACTOR_GUID AND 
      SAS_SHARES_ALLOTMENT.SHARE_GUID = CMS_ORG_SHARES.ORG_SHARES_PK INNER JOIN
      CMS_DIRECTORSHIP ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_DIRECTORSHIP.ORG_ACTOR_GUID AND 
      CMS_INDIVIDUAL.IND_ACTOR_GUID = CMS_DIRECTORSHIP.DIRECTOR_ACTOR_GUID
    LEFT OUTER JOIN
                      CMS_MASTER_SETUP CMS_MASTER_SETUP_1 ON 
                      CMS_INDIVIDUAL.SUFFIX_GUID = CMS_MASTER_SETUP_1.MASTER_SETUP_PK LEFT OUTER JOIN
                      CMS_MASTER_SETUP ON CMS_INDIVIDUAL.PREFIX_GUID = CMS_MASTER_SETUP.MASTER_SETUP_PK
WHERE     (PRM_WIP.UPDATE_STATUS = 'c') AND (SAS_SHARES_CERT.CURRENT_STATUS = 'N') And CMS_ORGANIZATION.ORG_ACTOR_GUID IN (Select ID from CMS_CLIENT_ID_TEMP)
AND CMS_DIRECTORSHIP.DATE_OF_CESSATION IS NULL
group by CMS_ORGANIZATION.REG_NAME , CMS_ORGANIZATION.ORG_ACTOR_GUID , CMS_INDIVIDUAL.FULL_NAME, CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,
      CMS_ORG_SHARES.SHARE_TYPE, SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE,CMS_ORG_SHARES.PAR_VALUE,
      SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM, CMS_INDIVIDUAL.GENDER, SAS_SHARES_ALLOTMENT.ISSUED_PRICE_PER_SHARE 

UNION ALL 


-- query to get the list shares acquired by directors through transfer (grouped by Client,director,date) cash type
SELECT  CMS_ORGANIZATION.REG_NAME AS [Client Name], CMS_ORGANIZATION.ORG_ACTOR_GUID AS [Client ID], 
      CMS_INDIVIDUAL.FULL_NAME, 'SHARES' AS [STOCK SHARES DEBENTURE], 
      --sum(ISNULL(SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, 0)) AS [No Of Shares] ,
    ISNULL(SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, 0) AS [No Of Shares] ,
      CMS_ORG_SHARES.SHARE_TYPE, 
      SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, 'HOLDER' AS [HOW HELD], 
      'Transfer' as [Remarks],
      SAS_SHARES_CERT_TRANSFER_HEADER.TRANSFER_DATE AS [Acquired Date] ,
      -- SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE AS [Acquired Date], 
      'CASH' AS [Acquired Consideration] , 
      'A' AS AcqOrTransf, CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,CMS_ORG_SHARES.PAR_VALUE, CMS_INDIVIDUAL.GENDER, SAS_SHARES_CERT_TRANSFER_DETAILS.CONSIDERATION as [Consideration]   
FROM         CMS_ORGANIZATION INNER JOIN
      CMS_SHAREHOLDER ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_SHAREHOLDER.ORG_ACTOR_GUID INNER JOIN
      CMS_INDIVIDUAL ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = CMS_INDIVIDUAL.IND_ACTOR_GUID INNER JOIN
      CMS_MASTER_COUNTRY CMS_MASTER_COUNTRY_1 ON 
      CMS_INDIVIDUAL.NATIONALITY_GUID = CMS_MASTER_COUNTRY_1.COUNTRY_PK INNER JOIN
      SAS_SHARES_CERT ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = SAS_SHARES_CERT.SHARE_CERT_OWNER_ACTOR_GUID INNER JOIN
      CMS_SHAREHOLDER_SHAREHOLDING ON 
      CMS_SHAREHOLDER.SHAREHOLDER_PK = CMS_SHAREHOLDER_SHAREHOLDING.SHAREHOLDER_GUID INNER JOIN
      SAS_SHARES_CERT_TRANSFER_DETAILS INNER JOIN
      SAS_SHARES_CERT_TRANSFER_HEADER ON 
      SAS_SHARES_CERT_TRANSFER_DETAILS.SHARE_CERT_GUID = SAS_SHARES_CERT_TRANSFER_HEADER.SHARE_CERT_GUID AND 
      SAS_SHARES_CERT_TRANSFER_DETAILS.WIP_GUID = SAS_SHARES_CERT_TRANSFER_HEADER.WIP_GUID INNER JOIN
      PRM_WIP ON SAS_SHARES_CERT_TRANSFER_DETAILS.WIP_GUID = PRM_WIP.WIP_PK ON 
      SAS_SHARES_CERT.SHARE_CERT_PK = SAS_SHARES_CERT_TRANSFER_DETAILS.TARGET_SHARE_CERT_GUID INNER JOIN
      CMS_ORG_SHARES ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_ORG_SHARES.ORG_ACTOR_GUID INNER JOIN
      SAS_SHARES_ALLOTMENT ON SAS_SHARES_CERT.ALLOTMENT_GUID = SAS_SHARES_ALLOTMENT.ALLOTMENT_PK AND 
      CMS_ORG_SHARES.ORG_SHARES_PK = SAS_SHARES_ALLOTMENT.SHARE_GUID INNER JOIN
      CMS_DIRECTORSHIP ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_DIRECTORSHIP.ORG_ACTOR_GUID AND 
      CMS_INDIVIDUAL.IND_ACTOR_GUID = CMS_DIRECTORSHIP.DIRECTOR_ACTOR_GUID LEFT OUTER JOIN
                      CMS_MASTER_SETUP CMS_MASTER_SETUP_1 ON 
                      CMS_INDIVIDUAL.SUFFIX_GUID = CMS_MASTER_SETUP_1.MASTER_SETUP_PK LEFT OUTER JOIN
                      CMS_MASTER_SETUP ON CMS_INDIVIDUAL.PREFIX_GUID = CMS_MASTER_SETUP.MASTER_SETUP_PK
WHERE     (PRM_WIP.UPDATE_STATUS = 'c') AND (SAS_SHARES_CERT.CURRENT_STATUS = 'NT') And CMS_ORGANIZATION.ORG_ACTOR_GUID IN (Select ID from CMS_CLIENT_ID_TEMP)
AND CMS_DIRECTORSHIP.DATE_OF_CESSATION IS NULL
group by CMS_ORGANIZATION.REG_NAME , CMS_ORGANIZATION.ORG_ACTOR_GUID , CMS_INDIVIDUAL.FULL_NAME, CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,
      CMS_ORG_SHARES.SHARE_TYPE, SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, SAS_SHARES_CERT_TRANSFER_HEADER.TRANSFER_DATE,CMS_ORG_SHARES.PAR_VALUE,
      SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, CMS_INDIVIDUAL.GENDER, SAS_SHARES_CERT_TRANSFER_DETAILS.CONSIDERATION 
-- SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE

UNION ALL

-- query to get the list shares acquired by directors through transfer (grouped by Client,director,date) NON - Cash type
SELECT  CMS_ORGANIZATION.REG_NAME AS [Client Name], CMS_ORGANIZATION.ORG_ACTOR_GUID AS [Client ID], 
      CMS_INDIVIDUAL.FULL_NAME, 'SHARES' AS [STOCK SHARES DEBENTURE], 
      --sum(ISNULL(SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM, 0)) AS [No Of Shares] ,
    ISNULL(SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM, 0) AS [No Of Shares] ,
      CMS_ORG_SHARES.SHARE_TYPE, 
      SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, 'HOLDER' AS [HOW HELD], 
      'Transfer' as [Remarks], 
       SAS_SHARES_CERT_TRANSFER_HEADER.TRANSFER_DATE AS [Acquired Date] ,
      -- SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE AS [Acquired Date], 
      'NON CASH' AS [Acquired Consideration] , 
      'A' AS AcqOrTransf, CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,CMS_ORG_SHARES.PAR_VALUE, CMS_INDIVIDUAL.GENDER , SAS_SHARES_CERT_TRANSFER_DETAILS.CONSIDERATION as [Consideration]
FROM         CMS_ORGANIZATION INNER JOIN
      CMS_SHAREHOLDER ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_SHAREHOLDER.ORG_ACTOR_GUID INNER JOIN
      CMS_INDIVIDUAL ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = CMS_INDIVIDUAL.IND_ACTOR_GUID INNER JOIN
      CMS_MASTER_COUNTRY CMS_MASTER_COUNTRY_1 ON 
      CMS_INDIVIDUAL.NATIONALITY_GUID = CMS_MASTER_COUNTRY_1.COUNTRY_PK INNER JOIN
      SAS_SHARES_CERT ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = SAS_SHARES_CERT.SHARE_CERT_OWNER_ACTOR_GUID INNER JOIN
      CMS_SHAREHOLDER_SHAREHOLDING ON 
      CMS_SHAREHOLDER.SHAREHOLDER_PK = CMS_SHAREHOLDER_SHAREHOLDING.SHAREHOLDER_GUID INNER JOIN
      SAS_SHARES_CERT_TRANSFER_DETAILS INNER JOIN
      SAS_SHARES_CERT_TRANSFER_HEADER ON 
      SAS_SHARES_CERT_TRANSFER_DETAILS.SHARE_CERT_GUID = SAS_SHARES_CERT_TRANSFER_HEADER.SHARE_CERT_GUID AND 
      SAS_SHARES_CERT_TRANSFER_DETAILS.WIP_GUID = SAS_SHARES_CERT_TRANSFER_HEADER.WIP_GUID INNER JOIN
      PRM_WIP ON SAS_SHARES_CERT_TRANSFER_DETAILS.WIP_GUID = PRM_WIP.WIP_PK ON 
      SAS_SHARES_CERT.SHARE_CERT_PK = SAS_SHARES_CERT_TRANSFER_DETAILS.TARGET_SHARE_CERT_GUID INNER JOIN
      CMS_ORG_SHARES ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_ORG_SHARES.ORG_ACTOR_GUID INNER JOIN
      SAS_SHARES_ALLOTMENT ON SAS_SHARES_CERT.ALLOTMENT_GUID = SAS_SHARES_ALLOTMENT.ALLOTMENT_PK AND 
      CMS_ORG_SHARES.ORG_SHARES_PK = SAS_SHARES_ALLOTMENT.SHARE_GUID INNER JOIN
      CMS_DIRECTORSHIP ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_DIRECTORSHIP.ORG_ACTOR_GUID AND 
      CMS_INDIVIDUAL.IND_ACTOR_GUID = CMS_DIRECTORSHIP.DIRECTOR_ACTOR_GUID
LEFT OUTER JOIN
                      CMS_MASTER_SETUP CMS_MASTER_SETUP_1 ON 
                      CMS_INDIVIDUAL.SUFFIX_GUID = CMS_MASTER_SETUP_1.MASTER_SETUP_PK LEFT OUTER JOIN
                      CMS_MASTER_SETUP ON CMS_INDIVIDUAL.PREFIX_GUID = CMS_MASTER_SETUP.MASTER_SETUP_PK
WHERE     (PRM_WIP.UPDATE_STATUS = 'c') AND (SAS_SHARES_CERT.CURRENT_STATUS = 'NT') And CMS_ORGANIZATION.ORG_ACTOR_GUID IN (Select ID from CMS_CLIENT_ID_TEMP)
AND CMS_DIRECTORSHIP.DATE_OF_CESSATION IS NULL
group by CMS_ORGANIZATION.REG_NAME , CMS_ORGANIZATION.ORG_ACTOR_GUID , CMS_INDIVIDUAL.FULL_NAME, CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,
      CMS_ORG_SHARES.SHARE_TYPE, SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, SAS_SHARES_CERT_TRANSFER_HEADER.TRANSFER_DATE,CMS_ORG_SHARES.PAR_VALUE,
      SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM, CMS_INDIVIDUAL.GENDER, SAS_SHARES_CERT_TRANSFER_DETAILS.CONSIDERATION 
-- SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE 



-- queries for all acquisitions end here 

UNION ALL 


-- query to get the list shares tranasferred by directors (grouped byClient,director,date) by cash 

SELECT     CMS_ORGANIZATION.REG_NAME AS [Client Name], CMS_ORGANIZATION.ORG_ACTOR_GUID AS [Client ID], 
      CMS_INDIVIDUAL.FULL_NAME, 'SHARES' AS [STOCK SHARES DEBENTURE], 
      --SUM(ISNULL(SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, 0))  AS [No Of Shares] ,
    ISNULL(SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, 0)  AS [No Of Shares] ,
      CMS_ORG_SHARES.SHARE_TYPE, 
      SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, 'HOLDER' AS [HOW HELD], 
      'Transfer' as [Remarks],
      SAS_SHARES_CERT_TRANSFER_HEADER.TRANSFER_DATE AS [Out Date],
       -- SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE AS [Out Date],
       'CASH' AS [Out Consideration] ,
      'T' AS AcqOrTransf, CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,CMS_ORG_SHARES.PAR_VALUE, CMS_INDIVIDUAL.GENDER , SAS_SHARES_CERT_TRANSFER_DETAILS.CONSIDERATION as [Consideration]
FROM         CMS_ORGANIZATION INNER JOIN
      CMS_SHAREHOLDER ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_SHAREHOLDER.ORG_ACTOR_GUID INNER JOIN
      CMS_INDIVIDUAL ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = CMS_INDIVIDUAL.IND_ACTOR_GUID INNER JOIN
      CMS_ADDRESS ON CMS_INDIVIDUAL.IND_ACTOR_GUID = CMS_ADDRESS.ACTOR_GUID INNER JOIN
      CMS_SHAREHOLDER_SHAREHOLDING ON 
      CMS_SHAREHOLDER.SHAREHOLDER_PK = CMS_SHAREHOLDER_SHAREHOLDING.SHAREHOLDER_GUID INNER JOIN
      SAS_SHARES_CERT ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = SAS_SHARES_CERT.SHARE_CERT_OWNER_ACTOR_GUID INNER JOIN
      SAS_SHARES_CERT_TRANSFER_DETAILS INNER JOIN
      SAS_SHARES_CERT_TRANSFER_HEADER ON 
      SAS_SHARES_CERT_TRANSFER_DETAILS.SHARE_CERT_GUID = SAS_SHARES_CERT_TRANSFER_HEADER.SHARE_CERT_GUID AND 
      SAS_SHARES_CERT_TRANSFER_DETAILS.WIP_GUID = SAS_SHARES_CERT_TRANSFER_HEADER.WIP_GUID ON 
      SAS_SHARES_CERT.SHARE_CERT_PK = SAS_SHARES_CERT_TRANSFER_HEADER.SHARE_CERT_GUID INNER JOIN
      CMS_ORG_SHARES INNER JOIN
      SAS_SHARES_ALLOTMENT ON CMS_ORG_SHARES.ORG_SHARES_PK = SAS_SHARES_ALLOTMENT.SHARE_GUID ON 
      CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_ORG_SHARES.ORG_ACTOR_GUID AND 
      SAS_SHARES_CERT.ALLOTMENT_GUID = SAS_SHARES_ALLOTMENT.ALLOTMENT_PK INNER JOIN
      CMS_DIRECTORSHIP ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_DIRECTORSHIP.ORG_ACTOR_GUID AND 
      CMS_INDIVIDUAL.IND_ACTOR_GUID = CMS_DIRECTORSHIP.DIRECTOR_ACTOR_GUID
LEFT OUTER JOIN
                      CMS_MASTER_SETUP CMS_MASTER_SETUP_1 ON 
                      CMS_INDIVIDUAL.SUFFIX_GUID = CMS_MASTER_SETUP_1.MASTER_SETUP_PK LEFT OUTER JOIN
                      CMS_MASTER_SETUP ON CMS_INDIVIDUAL.PREFIX_GUID = CMS_MASTER_SETUP.MASTER_SETUP_PK
WHERE     (SAS_SHARES_CERT.OUT_STATUS = 'T') And CMS_ORGANIZATION.ORG_ACTOR_GUID IN (Select ID from CMS_CLIENT_ID_TEMP) AND CMS_DIRECTORSHIP.DATE_OF_CESSATION IS NULL
group by CMS_ORGANIZATION.REG_NAME , CMS_ORGANIZATION.ORG_ACTOR_GUID , 
      CMS_INDIVIDUAL.FULL_NAME,CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,CMS_ORG_SHARES.SHARE_TYPE, 
      SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, 
      SAS_SHARES_CERT_TRANSFER_HEADER.TRANSFER_DATE,CMS_ORG_SHARES.PAR_VALUE,
      SAS_SHARES_CERT.SHARE_FOR_CASH_NUM, CMS_INDIVIDUAL.GENDER, SAS_SHARES_CERT_TRANSFER_DETAILS.CONSIDERATION 
      -- SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE 

UNION ALL

-- query to get the list shares tranasferred by directors (grouped byClient,director,date) by NON cash 
SELECT     CMS_ORGANIZATION.REG_NAME AS [Client Name], CMS_ORGANIZATION.ORG_ACTOR_GUID AS [Client ID], 
      CMS_INDIVIDUAL.FULL_NAME, 'SHARES' AS [STOCK SHARES DEBENTURE], 
      --SUM(ISNULL(SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM, 0))  AS [No Of Shares] ,
    ISNULL(SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM, 0)  AS [No Of Shares] ,
      CMS_ORG_SHARES.SHARE_TYPE, 
      SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, 'HOLDER' AS [HOW HELD], 
      'Transfer' as [Remarks],
      SAS_SHARES_CERT_TRANSFER_HEADER.TRANSFER_DATE,
      -- SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE , 
       'NON CASH' ,
      'T' AS AcqOrTransf , CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,CMS_ORG_SHARES.PAR_VALUE, CMS_INDIVIDUAL.GENDER , SAS_SHARES_CERT_TRANSFER_DETAILS.CONSIDERATION as [Consideration] 
FROM         CMS_ORGANIZATION INNER JOIN
      CMS_SHAREHOLDER ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_SHAREHOLDER.ORG_ACTOR_GUID INNER JOIN
      CMS_INDIVIDUAL ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = CMS_INDIVIDUAL.IND_ACTOR_GUID INNER JOIN
      CMS_ADDRESS ON CMS_INDIVIDUAL.IND_ACTOR_GUID = CMS_ADDRESS.ACTOR_GUID INNER JOIN
      CMS_SHAREHOLDER_SHAREHOLDING ON 
      CMS_SHAREHOLDER.SHAREHOLDER_PK = CMS_SHAREHOLDER_SHAREHOLDING.SHAREHOLDER_GUID INNER JOIN
      SAS_SHARES_CERT ON CMS_SHAREHOLDER.SHAREHOLDER_ACTOR_GUID = SAS_SHARES_CERT.SHARE_CERT_OWNER_ACTOR_GUID INNER JOIN
      SAS_SHARES_CERT_TRANSFER_DETAILS INNER JOIN
      SAS_SHARES_CERT_TRANSFER_HEADER ON 
      SAS_SHARES_CERT_TRANSFER_DETAILS.SHARE_CERT_GUID = SAS_SHARES_CERT_TRANSFER_HEADER.SHARE_CERT_GUID AND 
      SAS_SHARES_CERT_TRANSFER_DETAILS.WIP_GUID = SAS_SHARES_CERT_TRANSFER_HEADER.WIP_GUID ON 
      SAS_SHARES_CERT.SHARE_CERT_PK = SAS_SHARES_CERT_TRANSFER_HEADER.SHARE_CERT_GUID INNER JOIN
      CMS_ORG_SHARES INNER JOIN
      SAS_SHARES_ALLOTMENT ON CMS_ORG_SHARES.ORG_SHARES_PK = SAS_SHARES_ALLOTMENT.SHARE_GUID ON 
      CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_ORG_SHARES.ORG_ACTOR_GUID AND 
      SAS_SHARES_CERT.ALLOTMENT_GUID = SAS_SHARES_ALLOTMENT.ALLOTMENT_PK INNER JOIN
      CMS_DIRECTORSHIP ON CMS_ORGANIZATION.ORG_ACTOR_GUID = CMS_DIRECTORSHIP.ORG_ACTOR_GUID AND 
      CMS_INDIVIDUAL.IND_ACTOR_GUID = CMS_DIRECTORSHIP.DIRECTOR_ACTOR_GUID
LEFT OUTER JOIN
                      CMS_MASTER_SETUP CMS_MASTER_SETUP_1 ON 
                      CMS_INDIVIDUAL.SUFFIX_GUID = CMS_MASTER_SETUP_1.MASTER_SETUP_PK LEFT OUTER JOIN
                      CMS_MASTER_SETUP ON CMS_INDIVIDUAL.PREFIX_GUID = CMS_MASTER_SETUP.MASTER_SETUP_PK
WHERE     (SAS_SHARES_CERT.OUT_STATUS = 'T') And CMS_ORGANIZATION.ORG_ACTOR_GUID IN (Select ID from CMS_CLIENT_ID_TEMP) AND CMS_DIRECTORSHIP.DATE_OF_CESSATION IS NULL
group by CMS_ORGANIZATION.REG_NAME , CMS_ORGANIZATION.ORG_ACTOR_GUID , 
      CMS_INDIVIDUAL.FULL_NAME,CMS_MASTER_SETUP.DESCRIPTION, CMS_MASTER_SETUP_1.DESCRIPTION,CMS_ORG_SHARES.SHARE_TYPE, 
      SAS_SHARES_ALLOTMENT.PAID_UP_PRICE_PER_SHARE, SAS_SHARES_CERT_TRANSFER_HEADER.TRANSFER_DATE,CMS_ORG_SHARES.PAR_VALUE,
      SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM,
      SAS_SHARES_CERT.SHARE_FOR_NON_CASH_NUM , CMS_INDIVIDUAL.GENDER, SAS_SHARES_CERT_TRANSFER_DETAILS.CONSIDERATION 
      -- SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE 


order by CMS_ORGANIZATION.REG_NAME , CMS_INDIVIDUAL.FULL_NAME, 
    SAS_SHARES_ALLOTMENT.ALLOTMENT_DATE 


end

此查询中共有6个部分组合在一起。如果前两个部分没有其余部分执行,它将正常工作。如果最后4个部分在没有前2个部分的情况下执行,则命令将成功完成。但如果所有部件都在一起执行,则会显示以下错误:

  

Msg 257,Level 16,State 3,Procedure spDirectShareholding,第13行
  不允许从数据类型varchar到money的隐式转换。使用CONVERT函数运行此查询。

     

Msg 257,Level 16,State 1,Procedure spDirectShareholding,第13行
  不允许从数据类型varchar到money的隐式转换。使用CONVERT函数运行此查询。

     

Msg 257,Level 16,State 1,Procedure spDirectShareholding,第13行
  不允许从数据类型varchar到money的隐式转换。使用CONVERT函数运行此查询。

     

Msg 257,Level 16,State 1,Procedure spDirectShareholding,第13行
  不允许从数据类型varchar到money的隐式转换。使用CONVERT函数运行此查询。

我在SQL Server 2008中尝试了这个查询,它没有任何错误。但我的问题是这个查询不可能在SQL Server 2000中成功执行。由于我的SQL Server 2000中的数据库无法在SQL Server 2008中恢复,因为它不兼容。我不知道如何解决这个问题。

我确实尝试使用CONVERT/CAST函数来运行查询,但它成功但我的软件中发生了另一个错误。

很抱歉,如果您发现很难阅读长SQL查询,则会造成不便。

您的意见和建议对我很有帮助。提前谢谢。

0 个答案:

没有答案