I am having currently having the following output from the MySQL query.
+----------+--------------+-------------+-------------------+------------------+
| NAME | ALLO_DETAILS | ALLO_AMOUNT | DEDUCTION_DETAILS | DEDUCTION_AMOUNT |
+----------+--------------+-------------+-------------------+------------------+
| ALI | basic salary | 1000 | retirement | 500 |
| ASAD | basic salary | 1000 | bank a | 400 |
| JAMSHAID | basic salary | 1000 | bank a | 400 |
| JAMSHAID | hours | 1400 | tax | 200 |
+----------+--------------+-------------+-------------------+------------------+
the query I have used is:
SELECT `EMPLOYEES`.`EMP_NAME` AS NAME,
`ALLOCATION`.`ALLO_DETAILS` AS ALLO_DETAILS,
`ALLOCATION`.`ALLO_AMOUNT` AS ALLO_AMOUNT,
DEDUCATION.DED_DETAILS AS DEDUCTION_DETAILS,
DEDUCATION.DED_AMOUNT AS DEDUCTION_AMOUNT
FROM `EMPLOYEES`,
`ALLOCATION`,
`SALARY`,DEDUCATION
WHERE
EMPLOYEES`.`EMP_ID` = `SALARY`.`EMP_ID`
AND `ALLOCATION`.`ALLO_ID` = `SALARY`.`ALLO_ID`
AND DEDUCATION.DED_ID = `SALARY`.`DED_ID`;
Here are my tables definitions:
CREATE TABLE `EMPLOYEES` (
`EMP_ID` int DEFAULT NULL,
`EMP_NAME` varchar(50) DEFAULT NULL
)
CREATE TABLE `DEDUCATION` (
`DED_ID` int DEFAULT NULL,
`DED_DETAILS` varchar(100) DEFAULT NULL,
`DED_AMOUNT` int DEFAULT NULL
)
CREATE TABLE `SALARY` (
`SAL_ID` int DEFAULT NULL,
`EMP_ID` int DEFAULT NULL,
`ALLO_ID` int DEFAULT NULL,
`DED_ID` int DEFAULT NULL
)
What I am trying to do?
I am trying to get the output like this table:

What I am not getting is that how would I merge the results from different rows to a single row as shown in the above table?
Please ignore the n-columns. I am having the following columns
for total_allocation :
- Basic Salary
- Earnings
- Extra Hours
- Dangerous Work
And for total_deduction.
- Bank A
- Tax
- Retirement