Link to home
Start Free TrialLog in
Avatar of Cole100
Cole100Flag for United States of America

asked on

How do I get a sum of two returned rows in a Access query?

I am working in MS Access as my SQL knowledge is limited. When I pull Method of Payment I need the CASH and CHANGE to be returned as a SUM. In this example: CASH 312.89 and CHANGE 52.93 I would like it to just return the result as CASH = $259.96 along with all the other MOP's. I do not want to see the change line.

Is something like this possible? Thanks for any insight you can provide.

User generated image
SELECT dds_Daily_MOP_Tb.Store_Number, dds_Daily_MOP_Tb.Operations_Day, dds_Daily_MOP_Tb.MOP, dds_Daily_MOP_Tb.MOP_Amount
FROM dds_Daily_MOP_Tb
WHERE (((dds_Daily_MOP_Tb.Store_Number)=2322) AND ((dds_Daily_MOP_Tb.Operations_Day)=Date()-1));

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Kyle Abrahams, PMP
Kyle Abrahams, PMP
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
@Kyle Abrahams - I don't use Access. Does it support CASE statements or have a sql equivalent (maybe SWITCH)? In SQL Server it could be used return "CASH" for both values and group the results

SELECT d.Store_Number
      , d.Operations_Day
      , CASE WHEN d.MOP IN ('Cash', 'Change') THEN 'CASH' ELSE d.MOP END AS MOP
      , SUM( d.MOP_Amount ) AS MOP_Amount
FROM dds_Daily_MOP_Tb d
WHERE ...... etc...
GROUP BY  d.Store_Number
     , d.Operations_Day
     , CASE WHEN d.MOP IN ('Cash', 'Change') THEN 'CASH' ELSE d.MOP END

Results...

Store_NumberOperations_DayMOPMOP_Amount
23222021-07-21CASH259.96
23222021-07-21DEBIT CARD1708.51
....etc...


Access uses the excel version of iif:

eg:  iif(expression, true part here, false part here)

But there's also the concept of linked queries which I utlize all the time (eg: I find access queries very limiting, so write them in sql as views and then import the view as a "linked table").
Ah okay. I guess SWITCH is a vba function, not sql.  IIF works, but isn't as elegant/simple as CASE so I guess UNION or VIEW is the way to go here.