如何根据mysql查询中的kode列分阶段累加skor列

问题描述 投票:0回答:0

我想要一个以级联方式基于kode列的skor列数的表,通过mysql查询与组合表和所有的连接

这是表格:

--
-- Table structure for table `tbab`
--

CREATE TABLE `tbab` (
  `id` int(11) NOT NULL,
  `bab` varchar(150) NOT NULL,
  `uraian_bab` text NOT NULL,
  `aktif` char(1) NOT NULL,
  `tgl_input` date NOT NULL,
  `id_user` int(11) NOT NULL,
  `lastUpdate` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `tbab`
--

INSERT INTO `tbab` (`id`, `bab`, `uraian_bab`, `aktif`, `tgl_input`, `id_user`, `lastUpdate`) VALUES
(1, 'BAB I', 'KEPEMIMPINAN DAN MANAJEMEN PUSKESMAS', 'Y', '2023-02-02', 0, 0),
(2, 'BAB II', 'UPAYA KESEHATAN MASYARAKAT', 'Y', '2023-02-02', 0, 0),
(3, 'BAB III', 'PENYELENGGARAAN UPAYA KESEHATAN PERSEORANGAN DAN PENUNJANG (UKPP)', 'Y', '2023-02-02', 0, 0),
(4, 'BAB IV', 'PROGRAM PRIORITAS NASIONAL (PPN)', 'Y', '2023-02-02', 0, 0),
(5, 'BAB V', 'PENINGKATAN MUTU PUSKESMAS (PMP)', 'Y', '2023-02-02', 0, 0);

-- --------------------------------------------------------


CREATE TABLE `telemen` (
  `id` int(11) NOT NULL,
  `id_bab` int(11) NOT NULL,
  `id_standar` int(11) NOT NULL,
  `id_kriteria` int(11) NOT NULL,
  `id_elemenPenilaian` int(11) NOT NULL,
  `fakta_dan_analisis` text NOT NULL,
  `ya_tidak` char(1) NOT NULL,
  `regulasi` text NOT NULL,
  `observasi` text NOT NULL,
  `wawancara` text NOT NULL,
  `simulasi` text NOT NULL,
  `tgl_input` date NOT NULL,
  `dokumen_bukti_1` varchar(255) NOT NULL,
  `upload_dokumen_1` text NOT NULL,
  `dokumen_bukti_2` varchar(255) NOT NULL,
  `upload_dokumen_2` text NOT NULL,
  `dokumen_bukti_3` varchar(255) NOT NULL,
  `upload_dokumen_3` text NOT NULL,
  `dokumen_bukti_4` varchar(255) NOT NULL,
  `upload_dokumen_4` text NOT NULL,
  `dokumen_bukti_5` varchar(255) NOT NULL,
  `upload_dokumen_5` text NOT NULL,
  `validasi_user` int(1) NOT NULL,
  `rekomendasi` longtext NOT NULL,
  `skor` int(11) NOT NULL,
  `selesai_verifikasi` varchar(1) NOT NULL,
  `id_user` int(11) NOT NULL,
  `lastUpdate` int(11) NOT NULL,
  `id_verifikator` int(11) NOT NULL,
  `nama_verifikator` text NOT NULL,
  `skor_mandiri` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `telemen`
--

INSERT INTO `telemen` (`id`, `id_bab`, `id_standar`, `id_kriteria`, `id_elemenPenilaian`, `fakta_dan_analisis`, `ya_tidak`, `regulasi`, `observasi`, `wawancara`, `simulasi`, `tgl_input`, `dokumen_bukti_1`, `upload_dokumen_1`, `dokumen_bukti_2`, `upload_dokumen_2`, `dokumen_bukti_3`, `upload_dokumen_3`, `dokumen_bukti_4`, `upload_dokumen_4`, `dokumen_bukti_5`, `upload_dokumen_5`, `validasi_user`, `rekomendasi`, `skor`, `selesai_verifikasi`, `id_user`, `lastUpdate`, `id_verifikator`, `nama_verifikator`, `skor_mandiri`) VALUES
(18, 1, 1, 1, 2, 'uiugugu', 'T', 'iuguigiug', 'uguiguigui', 'iugugugi', 'gugiuguigi', '2023-02-09', 'nklnk', '70582587.pdf', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(15, 1, 1, 1, 2, 'yruyikg', 'Y', 'cuogpho', 'fiulkj', 'giohhiogog', 'gogiiogiggg', '2023-02-08', '', '', '', '', '', '', '', '', '', '', 0, '', 0, '', 20, 0, 0, '', 0),
(28, 1, 1, 2, 10, 'rtrtrtr', 'Y', 'fgfgfg', 'ghghgh', 'ghghhf', 'hfhfjj', '2023-02-12', '', '', 'uuiv', '58162475.pdf', '', '', '', '', '', '', 0, '', 0, '', 20, 0, 0, '', 0),
(13, 1, 1, 1, 2, 't8t8iu', 'Y', 'uuuit', 'ruyfyufyu', 'yfuyfuyfuy', 'yfuyfuyf', '2023-02-10', 'hoigogogo', '21695766.pdf', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(19, 1, 1, 1, 2, 'uiugugu', 'T', 'iuguigiug', 'uguiguigui', 'iugugugi', 'gugiuguigi', '2023-02-09', 'bbbbbbbbbbbb', '75008510.png', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(20, 1, 1, 1, 1, 'uiugugu', 'T', 'iuguigiug', 'uguiguigui', 'iugugugi', 'gugiuguigi', '2023-02-09', 'aaaaaaaaaa', '75692888.pdf', 'gggggggg', '48286039.pdf', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(25, 1, 1, 1, 1, 'oiooto', 'Y', 'ioyoyioo', 'hcfhjvhfk', 'o8t8ot8og', 'vkufoggo vsvsv', '2023-02-02', 'vhv', '14000109.pdf', 'bog iguguig', '18560856.pdf', 'bjblj', '44281551.pdf', 'bjkbjkbkb', '77870564.png', 'hjjhjh', '47608328.pdf', 0, 'abcdef ghijkl', 5, 'Y', 20, 0, 1, 'Administrator', 10),
(27, 1, 1, 1, 1, 'utiutiut', 'Y', 'uitutui', 'uitiuiu', 'utiutiut', 'iutiuti', '2023-09-20', 'bkl', '23332273.gif', 'qqqqqqqqqqqqq', '62980363.png', 'bjbkbjb', '74236701.pdf', 'bjbkbjb', '74236701.pdf', 'gsgsgsg', '20832129.pdf', 0, 'abcdef ghijkl', 2, 'Y', 20, 0, 1, 'Administrator', 5),
(29, 1, 1, 1, 1, 'ggggg', 'Y', 'aaaaaa', 'hdgdghdj kfkf', 'hshshsh', 'bnbnb', '2023-02-16', 'sue', '42088294.pdf', 'sac', '75398838.pdf', 'aijiaoixa', '46429802.pdf', '', '', '', '', 0, ',abcdef ghijkl', 7, 'Y', 20, 0, 1, 'Administrator', 10),
(30, 1, 1, 1, 1, '1. idbciscb', 'Y', '1. ucisucsiud', '1. uscsoucsov', '1. dvfsiuveuvsf', '1. csuvsuvsou', '2023-02-18', 'sjnvjbvos', '64145362.pdf', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(31, 1, 1, 1, 3, 'guguig', 'Y', 'giugiugi', 'uiugguig', 'ufuftuytftyf', 'ytftyfuyf', '2023-02-19', 'ffgfff jjjj', '40197549.pdf', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(32, 1, 1, 1, 4, 'giugiugg', 'Y', 'uiguiguig', 'ugiuguig', 'uiguiguig', 'uiguiguig', '2023-02-05', 'owicbscw', '21271390.pdf', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(34, 1, 1, 1, 1, 'oihiho', 'Y', 'ihihih', 'ihiohh', 'giugugig', 'iugiugigiug', '2023-02-22', 'hhjhj jkhj', '13647845.pdf', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(35, 1, 1, 1, 1, 'ugui uiguig', 'Y', 'guigui uiguig', 'guiguigi', ' ugiugiug', '7g9t9t', '2023-03-01', '', '', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0),
(36, 1, 1, 1, 1, 'ugui uiguig', 'Y', 'guigui uiguig', 'guiguigi', ' ugiugiug', '7g9t9t', '2023-03-01', 'fyfyfyf', '91770712.pdf', '', '', '', '', '', '', '', '', 0, '', 0, '', 0, 0, 0, '', 0);

-- --------------------------------------------------------

--
-- Table structure for table `telemendata`
--

CREATE TABLE `telemendata` (
  `id` int(11) NOT NULL,
  `id_grup` int(11) NOT NULL DEFAULT 0,
  `kode` varchar(150) NOT NULL,
  `kategori_elemen` text NOT NULL,
  `kategori_elemen_seo` text NOT NULL,
  `fakta_dan_analisis` text NOT NULL,
  `ya_tidak` text NOT NULL,
  `regulasi` text NOT NULL,
  `observasi` text NOT NULL,
  `wawancara` text NOT NULL,
  `simulasi` text NOT NULL,
  `tgl_input` text NOT NULL,
  `dokumen_bukti_1` text NOT NULL,
  `upload_dokumen_1` text NOT NULL,
  `dokumen_bukti_2` text NOT NULL,
  `upload_dokumen_2` text NOT NULL,
  `dokumen_bukti_3` text NOT NULL,
  `upload_dokumen_3` text NOT NULL,
  `dokumen_bukti_4` text NOT NULL,
  `upload_dokumen_4` text NOT NULL,
  `dokumen_bukti_5` text NOT NULL,
  `upload_dokumen_5` text NOT NULL,
  `validasi_user` text NOT NULL,
  `rekomendasi` text NOT NULL,
  `aktif` char(1) NOT NULL,
  `id_user` int(11) NOT NULL,
  `lastUpdate` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `telemen_penilaian`
--

CREATE TABLE `telemen_penilaian` (
  `id` int(11) NOT NULL,
  `id_kriteria` int(11) NOT NULL,
  `kode_ep` varchar(5) NOT NULL,
  `uraian_ep` text NOT NULL,
  `aktif` char(1) NOT NULL,
  `tgl_input` date NOT NULL,
  `id_user` int(11) NOT NULL,
  `lastUpdate` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `telemen_penilaian`
--

INSERT INTO `telemen_penilaian` (`id`, `id_kriteria`, `kode_ep`, `uraian_ep`, `aktif`, `tgl_input`, `id_user`, `lastUpdate`) VALUES
(1, 1, 'EP 1', '1.1.1.1.Ditetapkan visi, misi, tujuan dan tatanilai yang menjadi acuan dalam penyelenggaraan Puskesmas mulai dari perencanaan, pelaksanaan kegiatan hingga evaluasi kinerja Puskesmas (R)', 'Y', '2023-02-02', 0, 0),
(2, 1, 'EP 2', '1.1.1.2.Ditetapkan jenis-jenis pelayanan yang disediakan berdasarkan hasil identifikasi dan analisis sesuai dengan yang diminta dalam pokok pikiran pada paragraf terakhir. (R,D,W)', 'Y', '2023-02-02', 0, 0),
(3, 1, 'EP 3', '1.1.1.3.Rencana Lima Tahunan disusun dengan melibatkan lintas program dan lintas sektor serta berdasarkan rencana strategis Dinas Kesehatan Daerah Kabupaten/ Kota. ( R, D,W)', 'Y', '2023-02-02', 0, 0),
(4, 1, 'EP 4', '1.1.1.4.Rencana Usulan Kegiatan (RUK) disusun dengan melibatkan lintas program dan lintas sektor, berdasarkan rencana strategis Dinas Kesehatan Daerah Kabupaten/ Kota,  Rencana Lima Tahunan Puskesmas dan hasil penilaian kinerja. (R, D, W)', 'Y', '2023-02-02', 0, 0),
(5, 1, 'EP 5', '1.1.1.5.Rencana Pelaksanaan Kegiatan (RPK) Puskesmas disusun bersama lintas program sesuai dengan  alokasi anggaran yang ditetapkan oleh Dinas Kesehatan Daerah Kabupaten/ Kota. (R, D, W)', 'Y', '2023-02-02', 0, 0),
(6, 1, 'EP 6', '1.1.1.6. Rencana Pelaksanaan Kegiatan Bulanan disusun sesuai dengan Rencana                 Pelaksanaan Kegiatan Tahunan serta hasil pemantauan dan capaian kinerja                   bulanan. (R, D, W)', 'Y', '2023-02-02', 0, 0),
(7, 1, 'EP 7', '1.1.1.7. Apabila ada perubahan kebijakan Pemerintah dan Pemerintah Daerah dilakukan revisi perencanaan sesuai kebijakan yang ditetapkan (D, W)', 'Y', '2023-02-02', 0, 0),
(8, 2, 'EP 1', '1.1.2.1.Ditetapkan kebijakan tentang hak dan kewajiban pasien, dan jenis-  jenis pelayanan serta kegiatan yang disediakan oleh Puskesmas. (R)', 'Y', '2023-02-02', 0, 0),
(9, 2, 'EP 2', '1.1.2.2.Dilakukan sosialisasi tentang hak dan kewajiban pasien, jenis-jenis  pelayanan serta kegiatan yang disediakan oleh Puskesmas. (D,W)', 'Y', '2023-02-02', 0, 0),
(10, 2, 'EP 3', '1.1.2.3. Dilakukan evaluasi dan tindak lanjut terhadap penyampaian informasi  terkait hak dan kewajiban pasien, jenis-jenis pelayanan dan kegiatan-  kegiatan Puskesmas terhadap pengguna layanan, lintas program maupun                 lintas sektor serta pemanfaatan pelayanan dan kesesuaian pelaksanaan  kegiatan dengan jadwal yang disusun. (D, W)', 'Y', '2023-02-02', 0, 0),
(11, 2, 'EP 4', '1.1.2.4. Dilakukan upaya untuk  memperoleh umpan balik dari masyarakat serta  dilakukan evaluasi dan tindak lanjut terhadap umpan balik.  (D, O, W)', 'Y', '2023-02-02', 0, 0);

-- --------------------------------------------------------

--
-- Table structure for table `tkriteria`
--

CREATE TABLE `tkriteria` (
  `id` int(11) NOT NULL,
  `idStandar` int(11) NOT NULL,
  `kode_kriteria` text NOT NULL,
  `uraian_kriteria` text NOT NULL,
  `aktif` char(1) NOT NULL,
  `tgl_input` date NOT NULL,
  `id_user` int(11) NOT NULL,
  `lastUpdate` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `tkriteria`
--

INSERT INTO `tkriteria` (`id`, `idStandar`, `kode_kriteria`, `uraian_kriteria`, `aktif`, `tgl_input`, `id_user`, `lastUpdate`) VALUES
(1, 1, 'KRITERIA 1.1.1', 'Puskesmas wajib menyediakan jenis-jenis pelayanan yang ditetapkan berdasarkan visi, misi, tujuan, dan tata nilai, analisis kebutuhan dan harapan, analisis peluang pengembangan pelayanan, analisis risiko pelayanan, dan ketentuan peraturan perundang-undangan yang dituangkan dalam perencanaan.  (lihat juga PMP 5.1; dan PMP 5.2 )', 'Y', '2023-02-02', 0, 0),
(2, 1, 'KRITERIA 1.1.2', 'Masyarakat sebagai penerima manfaat layanan, lintas program dan lintas sektor mendapatkan kemudahan akses informasi tentang hak dan kewajiban pasien, jenis-jenis pelayanan, dan kegiatan-kegiatan Puskesmas serta akses terhadap pelayanan dan penyampaian umpan balik (Lihat juga UKM : 2.2.1; 2.2.2)', 'Y', '2023-02-02', 0, 0);

-- --------------------------------------------------------

--
-- Table structure for table `tstandar`
--

CREATE TABLE `tstandar` (
  `id` int(11) NOT NULL,
  `id_bab` int(11) NOT NULL,
  `kode_standar` text NOT NULL,
  `uraian_standar` text NOT NULL,
  `aktif` char(1) NOT NULL,
  `tgl_input` date NOT NULL,
  `id_user` int(11) NOT NULL,
  `lastUpdate` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `tstandar`
--

INSERT INTO `tstandar` (`id`, `id_bab`, `kode_standar`, `uraian_standar`, `aktif`, `tgl_input`, `id_user`, `lastUpdate`) VALUES
(1, 1, 'STANDAR 1.1', 'PERENCANAAN PUSKESMAS DILAKUKAN SECARA TERPADU', 'Y', '2023-02-02', 0, 0),
(2, 1, 'STANDAR 1.2', 'TATA KELOLA ORGANISASI PUSKESMAS DILAKSANAKAN SESUAI DENGAN KETENTUAN PERATURAN PERUNDANG-UNDANGAN', 'Y', '2023-02-02', 0, 0),
(3, 1, 'STANDAR 1.3', 'MANAJEMEN SUMBER DAYA MANUSIA PUSKESMAS DILAKUKAN SESUAI DENGAN  KETENTUAN PERATURAN PERUNDANG-UNDANGAN ', 'Y', '2023-02-02', 0, 0),
(4, 1, 'STANDAR 1.4', 'MANAJEMEN FASILITAS DAN KESELAMATAN (MFK)', 'Y', '2023-02-02', 0, 0),
(5, 1, 'STANDAR 1.5', 'PENGAWASAN, PENGENDALIAN DAN PENILAIAN KINERJA', 'Y', '2023-02-02', 0, 0);

-- --------------------------------------------------------

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbab`
--
ALTER TABLE `tbab`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `telemen`
--
ALTER TABLE `telemen`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `telemendata`
--
ALTER TABLE `telemendata`
  ADD PRIMARY KEY (`id`),
  ADD KEY `id_grup` (`id_grup`);

--
-- Indexes for table `telemen_penilaian`
--
ALTER TABLE `telemen_penilaian`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `tkriteria`
--
ALTER TABLE `tkriteria`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `tpuskesmas`
--
ALTER TABLE `tpuskesmas`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `tstandar`
--
ALTER TABLE `tstandar`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tbab`
--
ALTER TABLE `tbab`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- AUTO_INCREMENT for table `telemen`
--
ALTER TABLE `telemen`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=37;

--
-- AUTO_INCREMENT for table `telemendata`
--
ALTER TABLE `telemendata`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `telemen_penilaian`
--
ALTER TABLE `telemen_penilaian`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- AUTO_INCREMENT for table `tkriteria`
--
ALTER TABLE `tkriteria`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `tstandar`
--
ALTER TABLE `tstandar`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

我试过像这样进行 mysql 查询:

SELECT tbab.id AS kode, concat_ws(' ', tbab.bab, tbab.uraian_bab) AS uraian, tbab.id IS NULL AS parent_id, '' AS fakta_dan_analisis, '' AS skor FROM tbab
        UNION ALL
        SELECT concat_ws('.', tbab.id, tstandar.id) AS id, concat_ws(' ', tstandar.kode_standar, tstandar.uraian_standar) AS uraian, id_bab AS parent_id, '', '' FROM tstandar LEFT JOIN tbab ON tbab.id=tstandar.id_bab
        UNION ALL
        SELECT concat_ws('.', tbab.id, tstandar.id, tkriteria.id) AS id, concat_ws(' ', tkriteria.kode_kriteria , tkriteria.uraian_kriteria) AS uraian, tkriteria.idStandar AS parent_id, '', '' FROM tkriteria LEFT JOIN tstandar ON tstandar.id=tkriteria.idStandar LEFT JOIN tbab ON tbab.id=tstandar.id_bab
        UNION ALL
        SELECT concat_ws('.', tbab.id, tstandar.id, tkriteria.id, telemen_penilaian.id) AS id, concat_ws(' ', telemen_penilaian.kode_ep , telemen_penilaian.uraian_ep) AS uraian, telemen_penilaian.id_kriteria AS parent_id, '', '' FROM telemen_penilaian LEFT JOIN tkriteria ON  tkriteria.id=telemen_penilaian.id_kriteria LEFT JOIN tstandar ON tstandar.id=tkriteria.idStandar LEFT JOIN tbab ON tbab.id=tstandar.id_bab 
        UNION ALL
        SELECT concat_ws('.', tbab.id, tstandar.id, tkriteria.id, telemen_penilaian.id, telemen.id) AS id, telemen_penilaian.kode_ep, telemen.id_elemenPenilaian AS parent_id, telemen.fakta_dan_analisis, telemen.skor FROM telemen LEFT JOIN telemen_penilaian ON telemen_penilaian.id=telemen.id_elemenPenilaian LEFT JOIN tkriteria ON  tkriteria.id=telemen_penilaian.id_kriteria LEFT JOIN tstandar ON tstandar.id=tkriteria.idStandar LEFT JOIN tbab ON tbab.id=tstandar.id_bab 
ORDER BY kode

以及查询执行时的结果如下:

我想让skor列的求和结果被kode列嵌套

mysql join subquery recursive-query
© www.soinside.com 2019 - 2024. All rights reserved.