Write a Query to Pivot Payments by Month
The purpose of this query is to display each customer’s payments for January, February, and March in a single row.
This is called pivoting — transforming rows into columns.
The Customers
table is included in the query and given an alias c
.
This allows us to refer to it easily using c
.
The Payments
table is joined using a LEFT JOIN
with the Customers
table.
This ensures that even customers who have not made any payments still appear in the result.
The SELECT
clause uses SUM(CASE WHEN ... THEN ... ELSE ... END)
three times — once for each month:
If the row’s PaymentMonth = 'January'
, then include its Amount
.
Otherwise, use 0
.
The same logic applies for 'February' and 'March'.
SUM(...)
is used because a customer may have made multiple payments in a single month.
Using SUM
totals up all payments for that month per customer.
GROUP BY c.CustomerName
ensures that each customer’s name appears only once in the result,
and the total payment for each month is displayed beside their name.
SQL Query:
SELECT
c.CustomerName,
SUM(CASE WHEN p.PaymentMonth = 'January' THEN p.Amount ELSE 0 END) AS January,
SUM(CASE WHEN p.PaymentMonth = 'February' THEN p.Amount ELSE 0 END) AS February,
SUM(CASE WHEN p.PaymentMonth = 'March' THEN p.Amount ELSE 0 END) AS March
FROM Customers c
LEFT JOIN Payments p
ON c.CustomerID = p.CustomerID
GROUP BY c.CustomerName;
Output:
Trainings :
Data Science Training in Indore | Data Analytics Training in Indore | Python Training in Indore | Blockchain Training in Indore | React JS Training in Indore | Web Development Training in Indore | Full Stack Development Training in Indore |Free Courses and Resource :
Verbal Aptitude | Matplotlib Tutorials | Examples | Interview Questions | Pandas Tutorials | Projects | Interview Questions | OpenCV Tutorials | Projects | Interview Questions | ExpressJS Tutorials | Projects | Interview Questions | Dart | Python Data Structures and Algorithms | Rust Tutorials | Projects | Interview Questions | Aptitude Tests | HackerRank Python | Django | MongoDB Tutorials | Examples | Interview Questions | NumPy Practice Questions | Python Tutorials by CodersDaily | Golang Tutorials | Projects | Interview Questions | React.js Tutorials | Verbal Ability Tutorial | MS Sql Server Tutorials | Examples | Interview Questions | Power BI Tutorials | Projects | Interview Questions | Example Dashboards | Numpy Tutorials | Projects | Interview Questions | Django REST Framework Tutorial | HackerRank C++ Solutions | Tensor Flow | Pandas Practice Questions | Python Practice Questions | C++ Tutorials | Quantitative Ability Tutorial | Javascript | Node.js Tutorials | HackerRank SQL Solutions | HackerRank DSA Solutions | Verbal Aptitude 2 | HackerRank Java Solutions | HTML Tutorial | TCS NQT Mock Test Series | Reasoning Ability Tutorial | CodeChef Python Solutions | HackerRank C Program Solutions | Leetcode Python Solutions | SQL Practice Question | Matplotlib Practice Questions |Interview Questions :
Pandas Tutorials | Projects | Interview Questions | ExpressJS Tutorials | Projects | Interview Questions | Django | Python Tutorials by CodersDaily | Golang Tutorials | Projects | Interview Questions | Numpy Tutorials | Projects | Interview Questions | Django REST Framework Tutorial |Top Colleges in India :
Indian Institute of Technology Bombay | Jaypee University of Engineering and Technology - Guna |