Reputation: 93
I previously ask on how to join multiple tables thru MYSQL but now I encountered a new issue.
Say I have these several tables.
Reimbursement Table
-Name---Check Number-----Date------Reimbursement--
-John-----1--------------7/23/12-------$100-------
-Joe------2--------------7/23/12-------$102-------
-Jane-----3--------------7/23/12-------$103-------
-Jill-----4--------------7/23/12-------$104-------
Original Claim
-Name---Check Number-----Date---------Amount--
-John-----1--------------7/23/12-------$100---
-Joe------2--------------7/23/12-------$102---
-Jane-----3--------------7/23/12-------$103---
-Jill-----4--------------7/23/12-------$100---
Adjusted Claim
-Name---Check Number-----Date---------Amount--
-Jill-----4--------------7/23/12-------$4-----
End Result through crystal report should be
-Name---Check #---Claim Type----Date Paid----Amount----Reimbursement--
-John-----1-------Original--------7/23/12-----$100-------$100---------
-Joe------2-------Original--------7/23/12-----$102-------$102---------
-Jane-----3-------Original--------7/23/12-----$103-------$103---------
-Jill-----4-------Original-------7/23/12------$100-------$104---------
-Jill-----4-------Adjusted-------7/23/12------$4----------------------
not
-Name---Check #---Claim Type----Date Paid----Amount----Reimbursement--
-John-----1-------Original--------7/23/12-----$100-------$100---------
-Joe------2-------Original--------7/23/12-----$102-------$102---------
-Jane-----3-------Original--------7/23/12-----$103-------$103---------
-Jill-----4-------Original-------7/23/12------$100-------$104---------
-Jill-----4-------Adjusted-------7/23/12------$4---------$104---------
my current script is:
Select mt.`Check Number` as `Check Number`,
mt.`Payment Date` as `Payment Date`,
mt.`Payment Type` as `Payment Type`,
c1.`Facility Name` as `Facility Name`,
'Adjustment June 2012' as `Claim Type`,
c1.`Amount` as Amount,
mt.Reimbursement as Reimbursement
From Reimbursement mt
Inner Join ClaimAdjust_6_2012 c1
on c1.`Check Number` = mt.`Check Number` and
mt.`Payment Date` = c1.`Payment Date`
Where mt.`Payment Date`>='2012-7-1' And
mt.`Payment Date`<'2012-8-1'
Union
Select mt.`Check Number` as `Check Number`,
mt.`Payment Date` as `Payment Date`,
mt.`Payment Type` as `Payment Type`,
c1.`Facility Name` as `Facility Name`,
'Original June 2012' as `Claim Type`,
c1.`Amount` as Amount,
mt.Reimbursement as Reimbursement
From Reimbursement mt
Inner Join Claim_6_2012 c1
on c1.`Check Number` = mt.`Check Number` and
mt.`Payment Date` = c1.`Payment Date`
Where mt.`Payment Date`>='2012-7-1' And
mt.`Payment Date`<'2012-8-1'
Upvotes: 0
Views: 139
Reputation: 263693
Does this query work? Why don't you only JOIN the Reimbursement Table
and Original Claim
and UNION it with Adjusted Claim
SELECT a.Name, a.CheckNumber, a.`Date`,
b.Amount, a.Reimbursement
FROM Reimbursement a INNER JOIN
OrginalClaim b ON
a.Name = b.Name AND
a.CheckNmber = b.CheckNumber AND
a.`Date` = b.`Date`
UNION
SELECT Name, CheckNumber, `Date`, Amount, NULL as Reimbursement
FROM AdjustedClaim
Upvotes: 1
Reputation: 1269543
I think the answer is pretty simple. Just ignore the reimbursement in the first subquery:
Select mt.`Check Number` as `Check Number`,mt.`Payment Date` as `Payment Date`,mt.`Payment Type` as `Payment Type`,c1.`Facility Name` as `Facility Name`,'Adjustment June 2012' as `Claim Type`,c1.`Amount` as Amount, NULL as Reimbursement
From Reimbursement mt Inner Join
ClaimAdjust_6_2012 c1
on c1.`Check Number` = mt.`Check Number` and mt.`Payment Date` = c1.`Payment Date`
Where mt.`Payment Date`>='2012-7-1' And mt.`Payment Date`<'2012-8-1'
Union all
Select mt.`Check Number` as `Check Number`,mt.`Payment Date` as `Payment Date`,mt.`Payment Type` as `Payment Type`,c1.`Facility Name` as `Facility Name`,'Original June 2012' as `Claim Type`,c1.`Amount` as Amount,mt.Reimbursement as Reimbursement
From Reimbursement mt Inner Join
Claim_6_2012 c1
on c1.`Check Number` = mt.`Check Number` and mt.`Payment Date` = c1.`Payment Date`
Where mt.`Payment Date`>='2012-7-1' And mt.`Payment Date`<'2012-8-1'
This joins in the table, so you can still use the payment dates, but sets the value to NULL.
Upvotes: 0