Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Query help...

Posted on 2013-01-24
Medium Priority
364 Views
Let's say I have:

Select BankAccount, LastName from Accounts

and it lists all accounts and the account holders last name... one record per.

Now I want to see their total deposits... ever.

Deposits are in a AccountsTransactions table that has two fields

BankAccount and DepositAmount.

Select BankAccount, LastName, DepositAmount from Accounts, AccountsTransactions

will show a record for each deposit made...

Select BankAccount, LastName, Sum(DepositAmount) from Accounts, AccountsTransactions

will return one record with a grand total of all deposits made.

How do I accomplish this?
0
Question by:classnet
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 3
• 2
• 2

LVL 61

Expert Comment

ID: 38816431
Try this:

``````Select a.BankAccount, a.LastName, SUM(t.DepositAmount) as TotDeposits
from Accounts a INNER JOIN AccountsTransactions t ON a.BankAccount = t.BankAccount
GROUP BY  a.BankAccount, a.LastName
``````
0

LVL 66

Expert Comment

ID: 38816436
If you're getting at all deposits for each person, then ...

SELECT a.BankAccount, a.LastName, Sum(at.DepositAmount)
FROM Accounts a
JOIN AccountsTransactions at ON a.BankAccount = at.BankAccount
GROUP BY Select a.BankAccount, a.LastName

>will return one record with a grand total of all deposits made.
If you're getting at all deposits for all BankAccounts, then it would just be..

SELECT Sum(DepositAmount)
FROM AccountsTransactions
0

Author Comment

ID: 38816446
So, if you "select" 15 fields and sum one field can I assume that you have to "group by" the other 14?

What if you select a, b, (c - d) + (e * f) as g, sum(h)

how do you "group by"?

Group by a, b, (c - d) + (e * f) or
Group by a, b, g
0

LVL 61

Expert Comment

ID: 38816460
You would group by the actual expressions:

Group by a, b, (c - d) + (e * f)
0

LVL 66

Assisted Solution

Jim Horn earned 1000 total points
ID: 38816464
>So, if you "select" 15 fields and sum one field can I assume that you have to "group by" the other 14?
Correct.  Whenever you apply an aggregate such as SUM(), COUNT(), MIN(), MAX(), you have to GROUP BY all other columns.

There is an exception for if it's a hard-coded column such as '1' as some_code, and calculations such as the cdef one you posted.
0

LVL 61

Accepted Solution

mbizup earned 1000 total points
ID: 38816505
If you have a lot of additional fields in your accounts table that you want to include, you might also be able to use a subquery like this:

``````SELECT a.*, q.TotDeposit
FROM Accounts
INNER JOIN
(SELECT BankAccount, SUM(DepositAmount) as TotDeposit
FROM AccountsTransactions
GROUP BY BankAccount) q ON a.BankAccount = q.BankAccount
``````
0

Author Closing Comment

ID: 38816553
Thank you very much!  This will help others I'm sure.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A Stored Procedure in Microsoft SQL Server is a powerful feature that it can be used to execute the Data Manipulation Language (DML) or Data Definition Language (DDL). Depending on business requirements, a single Stored Procedure can return differe…
Windocks is an independent port of Docker's open source to Windows.   This article introduces the use of SQL Server in containers, with integrated support of SQL Server database cloning.
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …
###### Suggested Courses
Course of the Month11 days, 10 hours left to enroll