0

私は3つのテーブルタイプマスター、給与加算、給与控除を持っています

タイプマスターテーブル

タイプ ID | タイプ名 |

1 |Act.Alw |

2 |食堂 |

3 |Sht.Alw |

4 |LOP |

給与加算

slno |従業員 |給与タイプ | 金額 |

1 |1 |1 |200 |

給与天引き

従業員 | 給与タイプ | 金額 |

1 |2 |500 |

1 | 4 | 300 |

表示したい

従業員 | 加算 | 金額 | 控除 | 額

1 | Act.Alw |200 | 食堂 | 500 |

1 | null | null | null | null | ループ | 300 |

クエリを作成しましたが、重複した結果が表示されます

select a.employee,a.typename,a.amount,b.typename,b.amount from
(select employee,typename,amount from salaryaddition 
 join typemaster on     typeid=salaryaddition.salarytype) a,
(select employee,typename,amount from salarydeduction 
 join typemaster on typeid=salarydeduction.salarytype) b
where a.employee=b.employee
4

1 に答える 1

0

従業員テーブルがある場合、次のようなことを試すことができます

SELECT  e.employee,
        sat.typename,
        SUM(sa.amount) amount,
        sdt.typename,
        SUM(sd.amount) amount
FROM    employeemaster e LEFT JOIN
        salaryaddition sa   ON  e.employee = sa.employee LEFT JOIN
        typemaster sat  ON  sa.salarytype = sat.typeid LEFT JOIN
        salarydeduction sd  ON  e.employee = sd.employee LEFT JOIN
        typemaster sdt  ON  sd.salarytype = sdt.typeid
GROUP BY    e.employee,
            sat.typename,
            sdt.typename
于 2012-08-10T05:55:15.643 に答える