首页 > 解决方案 > 如何正确加入这4个tableview

问题描述

我想在结果下合并这 4 个表格,这样表格就像重述一样,当我加入应该是名为 novi irawati 的 tanggal 字段的表格时,数据有 2 个不同的日期,分别是 12 月和 1 月的日期,当我做到了,所以日期中的错误原来是 12 月全都在 novi irawati 是一个解决方案?求他的帮助

表 laporan_totalgaji

nip    nama            jabatan              tanggal        tahun_masuk   gaji_pokok  total_tunjangan
10010   Muhammad Hayyi  Pimpinan             2019-12-15    2014-03-07        1425000    6669000
10011   Rifyal Ainul Yaqin  Ka Mantri        2019-12-16    2015-03-19   920000       4889200
10016   Novi Irawati    Kasir                2019-12-19    2016-04-18   650000       3075000
10019   Abdul Muik      Mantri               2019-12-20    2017-08-04   525000       4245000
10015   Alfan           Ka Mantri            2019-12-20    2017-03-10  850000       4889200
10017   Romiatul Jamil  Staff Admin          2019-12-21    2017-02-09   525000     2455000
10012   Misbahul Munir  Ka Mantri            2019-12-21    2015-09-28   920000     4889200
10018   Fidatul Hasanah Staff Admin          2019-12-21    2017-03-12   525000     2455000 
10013   Ari Arif Sholeh Ka Mantri            2019-12-21    2015-03-08   920000     4889200
10016   Novi Irawati    Kasir                2020-01-31    2016-04-18   650000     3075000

表 sum_potongan

nip        nama            total_tunjangan
10010   Muhammad Hayyi  6669000
10011   Rifyal Ainul Yaqin  4889200
10012   Misbahul Munir  4889200
10013   Ari Arif Sholeh 4889200
10014   Sopantoni Hendri C  4889200
10015   Alfan   4889200
10016   Novi Irawati    3075000
10017   Romiatul Jamil  2455000
10018   Fidatul Hasanah 2455000
10019   Abdul Muik  4245000
10020   Supyan Bariki   4245000
10021   Imam Baihaki    4245000
10022   Ahmad Andika    4245000
10023   Ahmad Jufri 4245000
10024   Sulaiman Ali Farizi 4245000

表 sum_potongan

nip        nama            total_potongan
10010   Muhammad Hayyi  242500
10011   Rifyal Ainul Yaqin  234000
10012   Misbahul Munir  234000
10013   Ari Arif Sholeh 234000
10014   Sopantoni Hendri C  234000
10015   Alfan   234000
10016   Novi Irawati    230500
10017   Romiatul Jamil  228500
10018   Fidatul Hasanah 228500
10019   Abdul Muik  227500
10020   Supyan Bariki   227500
10021   Imam Baihaki    227500
10022   Ahmad Andika    227500
10023   Ahmad Jufri 227500
10024   Sulaiman Ali Farizi 227500
10025   Andy Rachman    234000
10027   Tony Stark  234000
10028   Natasha 228500

表 sum_potonganabsen

    nip        nama          tanggal                 total_denda
   10010    Muhammad Hayyi  2019-12-15               0
   10011    Rifyal Ainul Yaqin  2019-12-16           0
   10012    Misbahul Munir  2019-12-20               0
   10013    Ari Arif Sholeh 2019-12-20                  0
   10014    Sopantoni Hendri C  2019-12-20              0
   10015    Alfan           2019-12-20                        0
   10016    Novi Irawati    2020-01-03                37500
   10016    Novi Irawati    2019-12-19                100000
   10017    Romiatul Jamil  2019-12-20                0
   10018    Fidatul Hasanah 2019-12-20                0
   10019    Abdul Muik  2019-12-20                    0

我的查询

select  laporan_totalgaji.nip,
   laporan_totalgaji.nama,
   laporan_totalgaji.jabatan,
   laporan_totalgaji.tanggal,
   laporan_totalgaji.gaji_pokok,
   laporan_totalgaji.total_tunjangan,
   (laporan_totalgaji.gaji_pokok + laporan_totalgaji.total_tunjangan) as gaji_kotor,
    (sp.total_potongan) as total_potongan,s.total_potonganabsen,((laporan_totalgaji.gaji_pokok + 
       laporan_totalgaji.total_tunjangan)-(sp.total_potongan+ s.total_potonganabsen)) as gaji_bersih
    from laporan_totalgaji
     inner join sum_tunjangan st on laporan_totalgaji.nip = st.nip
     inner join sum_potongan sp on laporan_totalgaji.nip = sp.nip
      inner join sum_potonganabsen s on laporan_totalgaji.nip = s.nip
      group by laporan_totalgaji.nip,
         laporan_totalgaji.nama,
        laporan_totalgaji.jabatan,
        laporan_totalgaji.gaji_pokok,
        laporan_totalgaji.total_tunjangan,
        (laporan_totalgaji.gaji_pokok + laporan_totalgaji.total_tunjangan),
        (sp.total_potongan),
         s.total_potonganabsen,((laporan_totalgaji.gaji_pokok + laporan_totalgaji.total_tunjangan)- 
         (sp.total_potongan+s.total_potonganabsen))

查询结果

[ 在此处输入图像描述1

我想要的结果 在此处输入图像描述

标签: mysqlsqldatabasesubquery

解决方案


对于最后一次加入,请尝试:

inner join sum_potonganabsen s on laporan_totalgaji.nip = s.nip
                               and laporan_totalgaji.tangal = s.tangal

推荐阅读