美好的一天,
我在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查询,则会造成不便。
您的意见和建议对我很有帮助。提前谢谢。