troubleshooting Question

SQL view subquery modification

Avatar of kanneswara
kanneswara asked on
DB Dev Tools
1 Comment1 Solution234 ViewsLast Modified:
Hi,

I have the following created

CREATE VIEW Finance.TransactionLog AS
SELECT
  'BANK' AS TransactionTargetTypeCode,
  'PAYMENT_RECEIVED' AS TransactionTypeCode,
  PY.PaymentID AS TransactionIdentificationID,
  PY.DepositDate AS TransactionDate,
  PY.Description AS TransactionTargetName,
  S.ExternalIdentifier AS TransactionTargetIdentificationID,
  PY.Amount AS TransactionAmount
FROM
  DATABASE.Payment PY
  INNER JOIN DATABASE.Sponsor S ON
    PY.SponsorID = S.SponsorID
    AND PY.SubType = 2 -- Sponsor
    AND PY.DeletedFlag = 0
    AND UPPER(PY.Description) IN ('BOA','CITIBANK') -- Be sure to modify list below as well
 
UNION ALL
 
SELECT
  'EMPLOYER' AS TransactionTargetTypeCode,
  'INVOICE' AS TransactionTypeCode,
  ST.StatementID AS TransactionIdentificationID,
  ST.InvoiceDate AS TransactionDate,
  S.Name AS TransactionTargetName,
  S.ExternalIdentifier AS TransactionTargetIdentificationID,
  SS.OutstandingBalance AS TransactionAmount
FROM
  DATABASE.Statements ST
  LEFT OUTER JOIN DATABASE.StatementSummary SS ON
    SS.StatementID = ST.StatementID  
    AND SS.DeletedFlag = 0
    AND ST.StatementTypeID = 2 -- Sponsor Invoice
  INNER JOIN DATABASE.Sponsor S ON
    ST.SponsorID = S.SponsorID
 
UNION ALL
 
SELECT
  'EMPLOYER' AS TransactionTargetTypeCode,
  'PAYMENT_RECEIVED' AS TransactionTypeCode,
  PY.PaymentID AS TransactionIdentificationID,
  PY.DepositDate AS TransactionDate,
  S.Name AS TransactionTargetName,
  S.ExternalIdentifier AS TransactionTargetIdentificationID,
  PY.Amount AS TransactionAmount
FROM
  DATABASE.Payment PY
  INNER JOIN DATABASE.Sponsor S ON
    PY.SponsorID = S.SponsorID
    AND PY.SubType = 2 -- Sponsor
    AND PY.DeletedFlag = 0
    AND UPPER(PY.Description) NOT IN ('BOA','CITIBANK') -- Be sure to modify list above as well
 
UNION ALL
 
SELECT
  'EMPLOYER' AS TransactionTargetTypeCode,
  'PAYMENT_POSTED' AS TransactionTypeCode,
  PY.PaymentID AS TransactionIdentificationID,
  PY.DepositDate AS TransactionDate,
  S.Name AS TransactionTargetName,
  S.ExternalIdentifier AS TransactionTargetIdentificationID,
  PAA.Amount AS TransactionAmount
FROM
  DATABASE.Payment PY
  INNER JOIN DATABASE.Sponsor S ON
    PY.SponsorID = S.SponsorID
    AND PY.SubType = 2 -- Sponsor
    AND PY.DeletedFlag = 0
  INNER JOIN DATABASE.PaymentApplyAllocation PAA ON
    PAA.PaymentID = PY.PaymentID
    AND PAA.DeletedFlag = 0
 
UNION ALL
 
SELECT
  'EMPLOYER' AS TransactionTargetTypeCode,
  'ADJUSTMENT' AS TransactionTypeCode,
  ADJ.Adjustment_ID AS TransactionIdentificationID,
  DATE(ADJ.Insert_TS) AS TransactionDate,
  S.Name AS TransactionTargetName,
  S.ExternalIdentifier AS TransactionTargetIdentificationID,
  ADJ.Adjustment_Amount AS TransactionAmount
FROM
  DATABASE.Adjustment ADJ  
  INNER JOIN DATABASE.Sponsor S ON
    ADJ.Entity_Identifier = S.ExternalIdentifier
    --AND ADJ.DeletedFlag = 0
    AND ADJ.Adjustment_Status_Ref_ID = 3
 
UNION ALL
 
SELECT
  'CARRIER' AS TransactionTargetTypeCode,
  'DISBURSEMENT' AS TransactionTypeCode,
  D.ID AS TransactionIdentificationID,
  D.Processing_Date AS TransactionDate,
  S.Name AS TransactionTargetName,
  S.ExternalIdentifier AS TransactionTargetIdentificationID,
  D.Amount AS TransactionAmount
FROM
  DATABASE.Disbursements D
  INNER JOIN DATABASE.Sponsor S ON
    D.Person_External_ID = S.ExternalIdentifier
    --AND D.DeletedFlag = 0
 
UNION ALL
 
SELECT
  'INDIVIDUAL' AS TransactionTargetTypeCode,
  'INVOICE' AS TransactionTypeCode,
  ST.StatementID AS TransactionIdentificationID,
  ST.InvoiceDate AS TransactionDate,
  CONCAT(P.FirstName,CONCAT(' ',P.LastName)) AS TransactionTargetName,
  P.ExternalIdentifier AS TransactionTargetIdentificationID,
  SS.OutstandingBalance AS TransactionAmount
FROM
  DATABASE.Statements ST
  INNER JOIN DATABASE.StatementSummary SS ON
    SS.StatementID = ST.StatementID  
    AND SS.DeletedFlag = 0
    AND ST.StatementTypeID = 1 -- Invididual Invoice
  INNER JOIN DATABASE.Person P ON
    ST.PersonID = P.PersonID
 
UNION ALL
 
SELECT
  'INDIVIDUAL' AS TransactionTargetTypeCode,
  'PAYMENT_RECEIVED' AS TransactionTypeCode,
  PY.PaymentID AS TransactionIdentificationID,
  PY.DepositDate AS TransactionDate,
  CONCAT(P.FirstName,CONCAT(' ',P.LastName)) AS TransactionTargetName,
  P.ExternalIdentifier AS TransactionTargetIdentificationID,
  PY.Amount AS TransactionAmount
FROM
  DATABASE.Payment PY
  INNER JOIN DATABASE.Person P ON
    PY.PersonID = P.PersonID
    AND PY.SubType = 6 -- Person
    AND PY.DeletedFlag = 0
 
UNION ALL
 
SELECT
  'INDIVIDUAL' AS TransactionTargetTypeCode,
  'PAYMENT_POSTED' AS TransactionTypeCode,
  PY.PaymentID AS TransactionIdentificationID,
  PY.DepositDate AS TransactionDate,
  CONCAT(P.FirstName,CONCAT(' ',P.LastName)) AS TransactionTargetName,
  P.ExternalIdentifier AS TransactionTargetIdentificationID,
  PAA.Amount AS TransactionAmount
FROM
  DATABASE.Payment PY
  INNER JOIN DATABASE.Person P ON
    PY.PersonID = P.PersonID
    AND PY.SubType = 6 -- Person
    AND PY.DeletedFlag = 0
  INNER JOIN DATABASE.PaymentApplyAllocation PAA ON
    PAA.PaymentID = PY.PaymentID
    AND PAA.DeletedFlag = 0
 
UNION ALL
 
SELECT
  'INDIVIDUAL' AS TransactionTargetTypeCode,
  'APTC' AS TransactionTypeCode,
  BLC.BLChargeID AS TransactionIdentificationID,
  DATE(BLSG.UpdateTS) AS TransactionDate,
  CONCAT(P.FirstName,CONCAT(' ',P.LastName)) AS TransactionTargetName,
  P.ExternalIdentifier AS TransactionTargetIdentificationID,
  BLC.Amount AS TransactionAmount
FROM DATABASE.BLCharge BLC
  INNER JOIN DATABASE.RateCharge RC ON
    BLC.RateChargeID = RC.RateChargeID
    AND RC.CalcCD = 17
    AND RC.DeletedFlag = 0
    AND BLC.DeletedFlag = 0
    AND BLC.Amount <> 0
  INNER JOIN DATABASE.BLStatementGroup BLSG ON
    BLC.BLStatementGroupID = BLSG.BLStatementGroupID
  INNER JOIN DATABASE.BLOperation BLO ON
    BLSG.BLOperationID = BLO.BLOperationID  
  INNER JOIN DATABASE.BLTransaction BLT ON
    BLO.BLTransactionID = BLT.BLTransactionID  
  INNER JOIN DATABASE.Person P ON
    BLT.PersonID = P.PersonID;  
 
 
CREATE VIEW Reports.FMSRPT03 AS
SELECT
  T.TransactionIdentificationID,
  T.TransactionTargetTypeCode,
  T.TransactionTypeCode,
  T.TransactionDate,
  T.TransactionTargetIdentificationID,
  T.TransactionTargetName,
  T.TransactionAmount,
  (CASE T.TransactionTypeCode WHEN 'INVOICE' THEN T.TransactionDate ELSE NULL END) AS InvoiceDate,
  (CASE T.TransactionTypeCode WHEN 'INVOICE' THEN T.TransactionIdentificationID ELSE NULL END) AS InvoiceReferenceID,
  (CASE T.TransactionTypeCode WHEN 'INVOICE' THEN T.TransactionAmount ELSE NULL END) AS InvoiceAmount,
  (CASE T.TransactionTypeCode WHEN 'APTC' THEN T.TransactionAmount ELSE NULL END) AS APTCAmount,
  (CASE T.TransactionTypeCode WHEN 'ADJUSTMENT' THEN T.TransactionAmount ELSE NULL END) AS AdjustmentAmount,
  (CASE T.TransactionTypeCode WHEN 'ADJUSTMENT' THEN T.TransactionDate ELSE NULL END) AS AdjustmentDate,
  (CASE T.TransactionTypeCode WHEN 'PAYMENT_RECEIVED' THEN T.TransactionAmount ELSE NULL END) AS PaymentReceivedAmount,
  (CASE T.TransactionTypeCode WHEN 'PAYMENT_RECEIVED' THEN T.TransactionDate ELSE NULL END) AS PaymentReceivedDate,
  (CASE T.TransactionTypeCode WHEN 'PAYMENT_POSTED' THEN T.TransactionAmount ELSE NULL END) AS PaymentPostedAmount,
  (CASE T.TransactionTypeCode WHEN 'PAYMENT_POSTED' THEN T.TransactionDate ELSE NULL END) AS PaymentPostedDate,
  (CASE T.TransactionTypeCode WHEN 'DISBURSEMENT' THEN T.TransactionAmount ELSE NULL END) AS DisbursementAmount,
  (CASE T.TransactionTypeCode WHEN 'DISBURSEMENT' THEN T.TransactionDate ELSE NULL END) AS DisbursementDate
FROM Finance.TransactionLog T;

 
My question is for APTC, i do not want to create a separate select, but no other tables in my union have a similiar field, so i have to create a separate view.but i want to include it in Individuals
Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 1 Answer and 1 Comment.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 1 Comment.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros