Pada kesempatan kali ini kita akan membahas cara menjumlahkan nilai pada field tertentu dengan kondisi tertentu menggunakan fungsi SUM dan IF.
Fungsi SUM digunakan untuk menjumlahkan nilai pada row yang ada pada suatu kolom, sedangkan fungsi IF digunakan untuk menguji nilai pada row tersebut (berdasarkan satu kondisi tertentu) sehingga diperoleh nilai yang akan digunakan dalam proses penjumlahan.
Persiapan Data
Pada tutorial ini, kita akan menggunakan tiga tabel. Untuk memudahkan, kita akan membuat tiga tabel sederhana yaitu tabel penjualan, pelanggan, dan produk. Skema tabel dan hubungan (relasi) antar tabel tampak seperti gambar berikut:
File SQL diatas dapat digunakan untuk membuat semua tabel yang diperlukan beserta contoh datanya.
Pada tutorial ini, kita akan mengolah data pada tabel penjualan, agar lebih mudah dipahami, berikut ini penjelasan field pada tabel penjualan:
- id_transaksi merupakan nilai unik dari tabel penjualan. Field ini merupakan primary key untuk tabel penjualan.
- id_pelanggan merupakan merupakan nomor id dari pelanggan. Field ini merupakan foreign key dari field
id_pelanggan
yang ada pada tabelpelanggan
- id_produk merupakan nomor id untuk produk. Field ini merupakan foreign key dari field
id_produk
yang ada pada tabelproduk
. - tgl_byr merupakan tanggal pembayaran dengan format yyyy-mm-dd.
- jml_byr merupakan jumlah pembayaran.
Adapun isi dari tabel penjualan seperti tampak pada tabel berikut:
+--------------+--------------+-----------+------------+---------+ | id_transaksi | id_pelanggan | id_produk | tgl_byr | jml_byr | +--------------+--------------+-----------+------------+---------+ | 1 | 1 | 111 | 2016-02-02 | 1500000 | | 2 | 1 | 112 | 2016-03-10 | 1250000 | | 3 | 1 | 113 | 2016-04-10 | 750000 | | 4 | 2 | 112 | 2015-02-02 | 500000 | | 5 | 2 | 112 | 2015-03-10 | 3500000 | | 6 | 2 | 113 | 2016-04-10 | 1500000 | | 7 | 3 | 115 | 2016-02-02 | 1550000 | | 8 | 3 | 115 | 2015-03-10 | 2730000 | | 9 | 3 | 111 | 2016-04-10 | 4949000 | | 10 | 1 | 115 | 2015-02-02 | 2450000 | | 11 | 1 | 111 | 2016-03-10 | 1725000 | | 12 | 4 | 111 | 2015-04-10 | 775000 | | 13 | 4 | 115 | 2016-04-10 | 2900000 | +--------------+--------------+-----------+------------+---------+
Sedangkan untuk tabel pelanggan, data yang akan kita gunakan adalah sebagai berikut:
+--------------+---------+-----------+---------+ | id_pelanggan | nama | alamat | id_staf | +--------------+---------+-----------+---------+ | 1 | Alfa | Jakarta | 1 | | 2 | Beta | Semarang | 1 | | 3 | Charlie | Surabaya | 2 | | 4 | Delta | Surakarta | 3 | +--------------+---------+-----------+---------+
Penggunaan Fungsi SUM IF
Selanjutnya, mari kita gunakan fungsi SUM dan IF untuk melakukan penjumlahan semua penjualan berdasarkan tahun, query yang kita gunakan adalah:
SELECT SUM(IF( YEAR(tgl_byr) = 2016, jml_byr, 0)) AS jml_2016,
SUM(IF( YEAR(tgl_byr) = 2015, jml_byr, 0)) AS jml_2015
FROM penjualan
Hasil yang kita peroleh:
+----------+----------+ | jml_2016 | jml_2015 | +----------+----------+ | 16124000 | 9955000 | +----------+----------+
Pada query diatas, MySQL akan melakukan pengecekan pada tiap-tiap row satu per satu. MySQL akan menjalankan fungsi YEAR
untuk mendapatkan tahun dari data tanggal ada pada kolom tgl_byr
, selanjutnya jika:
- Hasil fungsi
YEAR
adalah 2016, maka, ambil nilai pada kolomjml_byr
untuk disertakan dalam proses penjumlahan, jika tidak, gunakan nilai nol (0
). - Proses diatas berlaku juga untuk tahun 2015.
SUM
dengan tanda kurung buka tidak boleh ada spasi seperti: SUM (
jika tidak, maka akan muncul pesan error: SQL Error (1630): FUNCTION tutorial_sum_if.SUM does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual
Selanjutnya, jika kita ingin mengetahui jumlah pembelian per pelanggan per tahun, maka kita dapat mengelompokkan data berdasarkan kolom id_pelanggan
, query yang kita gunakan:
SELECT id_pelanggan,
SUM(IF( YEAR(tgl_byr) = 2016, jml_byr, 0)) AS jml_2016,
SUM(IF( YEAR(tgl_byr) = 2015, jml_byr, 0)) AS jml_2015,
SUM(jml_byr) AS TOTAL
FROM penjualan
GROUP BY id_pelanggan
Hasil yang kita dapatkan:
+--------------+----------+----------+---------+ | id_pelanggan | jml_2016 | jml_2015 | TOTAL | +--------------+----------+----------+---------+ | 1 | 5225000 | 2450000 | 7675000 | | 2 | 1500000 | 4000000 | 5500000 | | 3 | 6499000 | 2730000 | 9229000 | | 4 | 2900000 | 775000 | 3675000 | +--------------+----------+----------+---------+
Terakhir, mari kita tampilkan informasi nama pelanggan dengan cara menggabungkan tabel penjualan dan tabel pelanggan. Adapun query yang kita perlukan:
SELECT id_pelanggan,
nama,
SUM(IF( YEAR(tgl_byr) = 2016, jml_byr, 0)) AS jml_2016,
SUM(IF( YEAR(tgl_byr) = 2015, jml_byr, 0)) AS jml_2015,
SUM(jml_byr) AS TOTAL
FROM penjualan
LEFT JOIN pelanggan USING(id_pelanggan)
GROUP BY id_pelanggan
Hasil yang kita peroleh:
+--------------+---------+----------+----------+---------+ | id_pelanggan | nama | jml_2016 | jml_2015 | TOTAL | +--------------+---------+----------+----------+---------+ | 1 | Alfa | 5225000 | 2450000 | 7675000 | | 2 | Beta | 1500000 | 4000000 | 5500000 | | 3 | Charlie | 6499000 | 2730000 | 9229000 | | 4 | Delta | 2900000 | 775000 | 3675000 | +--------------+---------+----------+----------+---------+
IF
hanya dapat digunakan untuk melakukan pengujian satu kondisi sehingga jika kita ingin menjumlahkan kolom dengan beberapa kondisi, kita tidak bisa menggunakan fungsi IF
, melainkan menggunakan CASE
.Jika kita ingin menghitung jumlah baris, misal untuk menghitung jumlah transaksi per pelanggan, kita dapat menggunaan fungsi COUNT
. Pembahasan fungsi tersebut dapat diikuti pada tutorial: Menghitung Field (Kolom) Pada Tabel MySQL Dengan Kondisi Tertentu Menggunakan COUNT IF
UPDATE
Mas awy dalam feedbacknya ingin membuat grand total dari total yang ada, saya rasa perlu untuk saya tambahkan pada artikel ini sehingga dapat lebih informatif.
Terdapat beberapa cara untuk membuat grand total dari total yang ada, beberapa diantaranya dibahas pada artikel: Menghitung Total dan Subtotal Pada MySQL.
Pada contoh kali ini kita akan menghitung grand total menggunakan query tersendiri kemudian digabungkan dengan query utama menggunakan UNION ALL
, querynya adalah sebagai berikut:
SELECT id_pelanggan,
nama,
SUM(IF(YEAR(tgl_byr) = 2016, jml_byr, 0)) AS jml_2016,
SUM(IF(YEAR(tgl_byr) = 2015, jml_byr, 0)) AS jml_2015,
SUM(jml_byr) AS TOTAL
FROM penjualan
LEFT JOIN pelanggan USING(id_pelanggan)
GROUP BY id_pelanggan
UNION ALL
SELECT "" AS id_pelanggan,
"Grand Total" as nama,
SUM(IF(YEAR(tgl_byr) = 2016, jml_byr, 0)) AS jml_2016,
SUM(IF(YEAR(tgl_byr) = 2015, jml_byr, 0)) AS jml_2015,
SUM(jml_byr) AS TOTAL
FROM penjualan
Hasil yang kita dapatkan:
+--------------+-------------+----------+----------+----------+ | id_pelanggan | nama | jml_2016 | jml_2015 | TOTAL | +--------------+-------------+----------+----------+----------+ | 1 | Alfa | 5225000 | 2450000 | 7675000 | | 2 | Beta | 1500000 | 4000000 | 5500000 | | 3 | Charlie | 6499000 | 2730000 | 9229000 | | 4 | Delta | 2900000 | 775000 | 3675000 | | | Grand Total | 16124000 | 9955000 | 26079000 | +--------------+-------------+----------+----------+----------+
Pada query diatas, query pertama dan kedua bentuknya mirip, hanya bedanya, pada query pertama, data kita kelompokkan (GROUP BY) berdasarkan kolom id_pelanggan sedangkan yang kedua, kita tidak melakukan pengelompokan data, MySQL otomatis akan menggabungkan semua data untuk masing masing kolom.
Demikian pembahasan mengenai cara menggunakan fungsi SUM IF untuk menjumlahkan data dengan kriteria tertentu, semoga bermanfaat.
Subscibe Now
Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com
389 Feedback dari pembaca
mantapp ini…….. saya izin cpas ya. trimss.
monggo mas… semoga bermanfaat……
di oracle itu ada gk sih untuk mengisikan suatu column dengan total dari column lainnya .Contoh ada column harga dan column total, jadi column total ini berisi total dari harga?
Ada mas, itu fitur standar rdbms
mas saya mau tanya, bagaimana caranya supaya 2 data dengan nama yang sama dalam sebuah penilaian ketika kita ingin melihat hasilnya sudah keluar rata – ratanya
Ada contoh output tabelnya?
mas kalo men – sum hasil dari total untuk tabel ini
Maaf, maksudnya apa ya mas?
om agus, sama, saya juga punya maksud seperti itu, bagaimana caranya hasil dari kolom total, ditotal kembali, seperti membuat grand total pada footernya.
pada case diatas hasil grand totalnya jadi 26.079.000.
Saya ingin membuat total dari data yang sudah tampil di table html, bukan membuat query dari database.
thanks,
Terimakasih mas, feedback yang bagus.
Untuk membuat Grand Total sudah saya sertakan pada update artikel diatas.
Jika ingin menambahkan di HTML, mas bisa menggunakan php.
Sebenarnya untuk membuat grand total bisa melalui php bisa juga langsung melalui query, tetapi yang paling baik adalah via query karena menganut prinsip “sekali jadi” dan akan kompatibel jika di gunakan di bahasa pemrograman lain.
keren mas, mengingatkan saya kembali tentang like ‘%harus%’
kalaw mau seperti ini gmna :
kode | nama | jumlah kirim
001 | buku | 3
001 | buku | 4
JUMLAH | 7
002 | Pensil| 5
JUMLAH | 5
003 | hp | 2
003 | hp | 1
JUMLAH | 3
*di setiap nama barang yg sma di jumlah kan dan hasilnya berada tepat di bawah nama barang
Coba menggunakan rollup, tapi rollup mengharuskan GROUP BY, jadi harus ada yang unik antar kode dan nama. query:
SELECT kode, IFNULL(nama, ‘JUMLAH’) AS nama, sum(jumlah) as jumlah FROM `tes` GROUP BY kode, nama WITH ROLLUP
menghasilkan
kode|nama|jumlah
001|buku|3
001|buku 2|4
001|JUMLAH|7
dengan asumsi row ke dua diganti buku 2
mas saya maw bertanya
misalkan dalam tabel ada seperti ini
Nama barangjumlahtgl
sampo 3 12-06-2014
sampo 4 13-06-2014
sabun 3 13-06-2014
saya ingin menjumlahkan isi dari tabel bedasarkan nama barang hingga jadi kayak gini
Nama barangjumlah
sampo 7
sabun 3
tolong pencerahannya ,,
Bisa dicoba menggunakan group mas
Misal struktur tabel seperti ini:
nama_produk | jml | tgl
sampo | 3 | 12-06-2014
sampo | 4 | 13-06-2014
sabun | 3 | 13-06-2014
Query:
SELECT nama_produk AS “Nama Barang”, SUM(jml) AS jumlah
FROM `produk`
GROUP by nama_produk
Hasil:
Nama Barang | jumlah
sabun | 3
sampo | 7
Sedikit saran, sebisa mungkin hindari penggunaan nama secara langsung, lebih baik diganti dengan id misal sabun 1, sampo 2, dan dibuat tabel referensi misal dengan nama tabel nama_produk, dengan struktur:
id_produk | nama_produk
1 | sabun
2 | sampo
terima kasih banyak mas,, sarannya jalan,,
iyaa mas,,sudah saya isikan id sebaga pembeda,,
terima kasih banyak sarannya mas 😀
mas klo seuai tabel punya mas,, klo mau jumlahin per bulan gimana mas??
Terima kasih..
Seperti pivot tabel ya mas
tergantung fieldnya mas, bisa pakai IF atau CASE
kalau seperti diatas
Jika parameter lebih dari 1
Terima kasih banyak mas, tapi masih ada pertanyaan. Kalau ini saya aplikasikan di database oracle muncul error ya ORA-00907: missing right parenthesis
oracle syntaxnya agak beda mas, ikuti saja pesan errornya, mudah mudahan bisa fix 🙂
Om mau nanya, saya punya tabel :
———————————————————-
| Kode | Header | Nama | Saldo |
———————————————————-
1-10-0 | – | Kas |
1-11-0 | 1-10-0 | Kas A | 1000
1-12-0 | 1-10-0 | Kas B | 200
2-10-0 | – | Kendaraan |
2-11-0 | 2-10-0 | Mobil |
2-11-1 | 2-11-0 | avanza | 50
2-11-2 | 2-11-0 | jazz | 80
2-12-0 | 2-10-0 | Motor |
2-12-1 | 2-12-0 | honda | 30
———————————————————-
Bagaimana jika saya update atau insert salah satu kode maka total saldo otomatis ter SUM ke header masing2 kode seperti berikut :
———————————————————-
| Kode | Header | Nama | Saldo |
———————————————————-
1-10-0 | – | Kas | 1200
1-11-0 | 1-10-0 | Kas A | 1000
1-12-0 | 1-10-0 | Kas B | 200
2-10-0 | – | Kendaraan | 160
2-11-0 | 2-10-0 | Mobil | 130
2-11-1 | 2-11-0 | avanza | 50
2-11-2 | 2-11-0 | jazz | 80
2-12-0 | 2-10-0 | Motor | 30
2-12-1 | 2-12-0 | honda | 30
———————————————————-
Mohon bantuannya Om 🙂
Fungsi terkait untuk menangani permasalahan tersebut biasanya pakai trigger mas, namun sepengetahuan saya, di MySQL kita tidak dapat memanipulasi row pada tabel yang sama, ketika tabel tersebut sedang dimanipulasi baik dengan trigger maupun procedure, contoh ketika kita menginsert atau mengupdate row tertentu, di waktu bersamaan tidak dapat meng insert atau update row yang lain.
Mungkin cara yang bisa dipakai adalah membuat temporary tabel, nilai saldo disimpan di tabel tersebut, kemudian dipindahkan ke tabel asli, namun hal tersebut akan merepotkan jika data yang dimanipulsai jumlahnya besar.
Walaupun kita tidak dapat memanipulasi row yang lain, kita dapat memanipulasi nilai yang akan di tambahkan atau di ubah, misal dengan trigger berikut, kita memanipulasi data saldo yang akan ditambahkan menjadi total saldo di header yang sama:
perintah diatas hanya bisa dilakukan ketika data belum ditambahkan BEFORE UPDATE tidak bisa dilakukan ketika data setelah ditambahkan AFTER UPDATE
sehingga jika kita lakukan perintah
maka nilai saldo akan menjadi 2400 bukan 1200 lagi.
Semoga dapat membantu.
Salam 🙂
misi om mau tanya om,,
kalau mau menjumlah data id_pelanggan yang melakukan transaksi menurut tgl_bayar bagaimana om?
thanks
Mungkin seperti ini mas:
hasilnya:
misi om mau tanya nih kalau kaya gini gimana ya?
#ID | Project | Client | Point
Agus
01 | Piket | Kelas | 2
02 | Piket | Kelas | 3
Total
maaf, maksudnya bagaimana ya mas? ada contoh tabel awalnya?
https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSKz6MhzBggdTw7E297LfX_oY2ttX3CeN-B7ka1OBGUhLsUFGwF bikin kaya gitu mas ,gemiddelda nya dirubah menjadi total dari nilai diatas nay
Mas..kalo menghitung pembagian antar field dari 2 table berikut:
Tabel 1:
————————————————————
ID | Perusahaan | penghasilan | Pajak |
————————————————————-
1 | PT. Anugerah | 20.000.000 | |
2. | CV. Makmur | 20.000.000 | |
Keterangan:
– ID (int) (10) (key)
– Perusahaan (varchar) (50)
– Penghasilan (varchar) (30)
– Pajak (Varchar) (30)
Tabel 2:
————————————————————
ID | Perusahaan | parameter_pajak |
————————————————————-
1 | PT. Anugerah | 200.000 |
2. | CV. Makmur | 200.000 |
Keterangan:
– ID (int) (10) (key)
– Perusahaan (varchar) (50)
– Parameter_pajak (varchar) (30)
Pertanyaanya:
Misal kita mau menghitung isi kolom “Penghasilan (table-1)” dibagi isi kolom “Parameter_pajak (table-2)” dan hasil baginya otomatis akan terinput ke kolom “Pajak (table-1)”. Serta jika nilai “parameter_pajak (table-2)” dirubah nilai angkanya.. maka total pembagian di “pajak (table-1)” juga akan otomatis berubah. Caranya bagaimana ya mas?? tolong dong mas…makasih sebelumnya.
Untuk pertanyaan pertama, coba query ini mas:
yang kedua bisa menggunakan trigger dengan syntax:
Jika syntak diatas dijalankan di PHPMyAdmin, mungkin ada pesan error, namun diabaikan saja, biasanya trigger sudah kesimpan. Setelah itu
bisa dicoba dengan mengupdate tabel 2:
setelah itu coba cek isi tabel_1
Sedikit saran dari saya mas:
1. Untuk nulai angka seperti kolom penghasilan, pajak, dan parameter_pajak, gunakan type data INT, atau BIGINT, karena akan memudahkan memanipulasi data
2. Untuk penaman tabel maupun field tabel gunakan penamaan yang standar, biasanya huruf kecil semua + underscore, agar memudahkan kita ketika menulis kode, saya biasanya menulis syntax MySQL dengan huruf kapital sehingga jelas perbedaan mana syntax, mana tabel/field.
Semoga membantu
Salam…
Trimakasih mas untuk sarannya, dan field nya udah sya ganti.
Trus untuk tipsnya juga sudah sya praktekkan sesuai instruksi, dan triggersnya sih udah masuk mas, tapi kok nilainya gak muncul di table ya mas?? di kolom “pajak(table_1)” tetep kosong tuh mas. Trus saat saya masukin script yg kedua, muncul pesan erros “#1054 – Unknown column ‘id = 2’ in ‘where clause’ “.
Sebagai pertimbangan mas, misalnya table_2 (parameter_pajak) itu saya jadiin satu dengan table_1, jadi saya pake 1 table saja. trus nanti pake sistem pembagian biasa, ama nanti tinggal di select saat nampilin ke browser (kolom “parameter_pajak” ditampilin buat admin, dan kolom “perusahaan & pajak” untuk user). Kira2 dri sisi efektif dan keamanannya lebih bagus dipisah atau disatuin aja mas??
Mohon pencerahannya mas.., terimakasih banyak sebelumnya.
Jawaban 1:
Untuk tabelnya coba seperti ini mas:
Jawaban 2:
Semoga dapat membantu…
Salam….
mantap
Hallo om agus ph,
Saya mau tanya
Kalo cara menghitung total part reject berdasarkan tanggal, shift, part
Tanggal | shift | barang | reject | jml
2015-08-20 | S1 | abc | rusak | 3
2015-08-20 | S1 | abc | patah | 5
2015-08-20 | S1 | abc | ancur | 7
2015-08-20 | S1 | def | pecah | 2
2015-08-20 | S2 | abc | rusak | 4
2015-08-20 | S2 | def | rusak | 1
Saya mau menampilkan total reject ketika saya memilih pada option combo box:
tanggal ’20 agustus 2015′ di ‘shift 1’ untuk part ‘abc’
Maka tanpa harus submit, akan tampil nilai total di dalam textbox (readonly).
Mohon pencerahannya.
Sebelum dan sesudahnya terimakasih om 🙂
Misal tabel nya bernama produk, query yang digunakan bisa memakai ini mbak:
nanti ketemu hasilnya 15
untuk memanggil query tersebut ketika combo box di ganti nilainya, bisa menggunakan ajax, javascript. jika pengen lebih mudah bisa pakai library seperti jquery, event nya bisa pakai onChange, ajaxnya bisa menggunakan get
Semoga dapat membantu
Wih artikelnya keren. Oh ya gan ane mau tanya klo menjumlahkan (bukan di sum) 2 field mysql dan menjadi field tabel baru (AS) gimana ya??. Maklum masih amatiran ×_×
Terima kasih mas.
Misal kita punya tabel nilai_ujian dengan field nama, nilai1 dan nilai2. Maksudnya ingin menjumlahkan field nilai1 dan nilai2 ya mas? kalau yang dimaksud seperti itu bisa dicoba query berikut:
Mas, minta bantuannya buat tampilan dibawah ini :
001 KARYA UMUM 49 49
001 FILSAFAT DAN PSIKOLOGI 928 928
001 AGAMA 899 899
001 ILMU-ILMU SOSIAL 186 186
Kode nya seharusnya berurutan mas seperti : 001, 002, 003, 004
query yang saya pakai seperti ini mas :
$Query0 = mysqli_query($conn, “SELECT SUBSTR(eks_klasifikasi, 2, 3) AS KODE, COUNT(buku_id) AS JUMLAH_JUDUL, COUNT(eks_buku) AS JUMLAH_EKS FROM m_buku JOIN m_eksemplar ON m_buku.buku_id = m_eksemplar.eks_buku WHERE eks_klasifikasi LIKE ‘%0’ AND buku_id IS NOT NULL”)
Fungsi LIKE nya saya ganti untuk nomor urut 002 tapi pas di tampilan tetap 001. Thanks bantuannya Mas
Saya belum ada gambaran data awalnya mas, cuman bisa dicoba untuk menambahkan group by, karena ketika kita menggunakan fungsi agregat seperti COUNT, maka dibelakang layar MySQL akan melakukan group, yang field nya otomatis dipilihkan oleh MySQL, sehingga kadang hasil untuk field non agregat tidak sesuai harapan.
dear om agus,
terima kasih atas responnya..
maksud saya sih saya membuat grand total dariphp karena untuk menguji hasil querynya.
saya mau buat grand total untuk jurnal umum di akuntansi. jadi saya bisa cek apakah debet dan kreditnya sama. jadi bila ada kesalahan input di detailnya, saya bisa crosscheck.
btw, sekali lagi, terima kasih atas pencerahannya.. sukses ya om agus..
salam,
Oh begitu ya mas,
iya bisa pakai PHP mas, memang tidak bisa semua output dapat kita dapatkan langsung dari query MySQL,
untuk case yang kompleks kadang perlu bantuan PHP.
Sukses juga ya mas Awy…
Mas Agusph
Jika saya ingin membuat tabel PERHITUNGAN program gaji pegawai sederhana misal :
seperti perkalian penjumlahan dan lain lain dan program tsb saya SELIPKAN di program PHPMAKER apakah ada bedanya ? mksdnya apakah coding PHP murni dan PHPMAKER berbeda ? terima kasih
PHPMaker menyediakan berbagai fungsi untuk fetching data pada database mas, secara default aplikasi tersebut menggunakan active record untuk pengelolaan databasenya, namun kita juga dapat menjalankan perintah SQL murni seperti menggunakan fungsi ew_LoadRecordset
om agus numpang tanya kalo mau nampilkan
biar bisa tampil kayak gini
Coba pakai query ini mas:
SELECT nama, SUM(jml) as jumlah FROM nama_tabel GROUP BY nama
makasih om agus … alkhamdulilah berasil
om agus saya mau tanya, tapi sebelumnya saya jelaskan dulu ini saya bingung di sistem yang saya buat yaitu sistem koperasi, nah saya bingungnya cara nampilin sisa angsuran yang belum di bayar,contoh:si a meminjam 12 jt dan susah di angsur 1jt per bulan dan sudah bulan ke 6 nah jadinya 12-6 = 6 jt sisa hutang yang harus di angsur saya bingung cara menampilkannya dengan query , mohon bantuannya dan satu lagi untuk menampilkan ansuran ke berapa juga masih bingung trims
Saya perlu tahu struktur tabel nya mas, misal:
tabel nasabah
id_nasabah | nilai_kredit
1 | 12000000
tabel_angsuran
id_nasabah | jml_byr | tgl_byr
1 | 1000000 | 2016-01-01
1 | 1000000 | 2016-02-01
1 | 1000000 | 2016-03-01
1 | 1000000 | 2016-04-01
1 | 1000000 | 2016-05-01
1 | 1000000 | 2016-06-01
Bisa dicoba query ini mas
Om agus, mau tanya nih
Saya punya query spt ini:
Yg sy tanyakn
Ketika input penjualan.jumlah misalkan 1 tapi yg tampil kok gk sesuai yg di input ya, tampil nya jadi 2
Klo input 11 jadi 22
Mohon bantuan nya…
Terimakasih sebelumnya
Mungkin karena hubungan antar tabel nya many to many mas, sehingga ketika di joinkan datanya muncul semua, mungkin tabel penjualan perlu di buat temporary tabel kemudian di GROUP, sama Tabel temporary yang didalam clausa FROM mungkin perlu di group juga, coba dipelajari solusi ini mas:
http://jagowebdev.com/menghitung-fieldkolom-pada-tabel-mysql-dengan-kondisi-tertentu-menggunakan-count-if/#div-comment-281 jika belum bisa, coba di posting contoh datanya ke facebook JagoWebDev nanti kita bahas disana, biar runtut..
Oke om saya coba dulu
Iya mas, semoga sukses…
udah solved mas agus
terimaksih atas referensi nya
kira-kira query nya seperti ini:
mohon di koreksi jika ada salah 🙂
maaf telat replay
Sip mas, sudah betul…
Mas Agusph saya punya tabel akun dan jurnal bagaimana querynya untuk menampilkan Neraca?
Untuk dapat menghubungkan kedua tabel reation nya harus ONE to ONE mas, maka perlu untuk membuat tabel jurnal menjadi 1 row untuk setiap kode akun, coba query berikut mas:
Kode diatas memberikan gambaran umum untuk langkah selanjutnya
ijin kopas . bermanfaat sekali
Silakan mas, jangan lupa cantumkan sumbernya ya…
mas mau nanya kalau saya punya seperti ini querynya gimana ya mas
no anggaran bobot %
1 300 ?
2 200 ?
3 500 ?
tot sum(anggaran) sum(bobot)
bobot didapat dari => anggaran/sum(anggaran)*100
mohon pencerahannya mas
Data awalnya seperti apa ya mbak?
data awal seperti ini mas agus
nilai bobot di dapat dari bobot= (anggaran/totalanggaran)*100 atas bantuannya saya ucapkan terima kasih
Untuk single query bisa dicoba query ini mbak:
Namun kelemahannya, karena menggunakan subquery pada select, maka jika row yang diolah banyak maka waktu eksekusi semakin lama, arternatifnya bisa menggunakan variabel:
Hasilnya:
mas Agus, izin bertanya..
Data saya misal seperti ini :
TABEL PEMAKAIAN BAHAN
Hasil yang ingin diharapkan adalah :
JIKA kita pilih TANGGAL ANTARA : 01/04/2016 sampai dengan 03/04/2016 dan GUDANG : BELAKANG
data yang ditampilkan adalah :
mohon share ilmunya mas, terima kasih sebelumnya…
Untuk menjoinkan tabel, hubungan antar tabel tersebut HARUS one to one relationship mbak, jika belum maka buat temporary tabel dengan subquery.
Sedikit saran: Untuk tanggal sebaiknya pakai format standar database: yyyy-mm-dd, untuk nama gudang dan nama bahan bisa digantikan kode
Dengan asumsi data apa adanya, coba gunakan query ini untuk memperoleh hasil yang diinginkan:
Kalau source code penjumlahan yg dibahas versi php.nya gimana mas? Aku kurang paham soalnya masih newbie mas
coba pelajari artikel ini mas: Menghitung Total dan Subtotal Pada MySQL
Hello Pak Agus, mau nanya , misalnya saya punya
Tabel 1 dengan total row 5 dan
table 2 dengan total row 10 serta
table 3 dengan total row 25
pertanyaan :
bagaiman supaya tabel 4 ini berisi semua row yang ada di tabel 1 , tabel 2, tabel 3 sehingga jumlah row yang ada di tabel 4 ini menjadi 50 row dan otomatis terus bertambah dan berkurang jika row ditabel 1 , tabel 2 dan tabel 3 ada yang bertambah atau berkurang
Thanks, salam
Coba pakai union mas, misal:
SELECT id_tabel1, nama_tabel1, alamat_tabel1 FROM tabel1
UNION SELECT id_tabel2, nama_tabel2, alamat_tabel2 FROM tabel2
UNION SELECT id_tabel3, nama_tabel3, alamat_tabel3 FROM tabel3
Syarat menggunakan union: banyaknya kolom HARUS sama, jika tidak sama bisa menggunakan fixed value
izin tanya lagi pak Agus1.mau tanya lagi pak agus, apakah dengan cara diatas brarti ada terbentuk data tabel baru ya. ..? bukan hanya view saja kan.?
2. bagaimana cara membuat tabel misalnya tabel terdiri dari 4 field dengan judul fieldnya yaitu:
field1 : namabarang
field2 : jumlahbarang
field3 : hargapersatuan
field4 : total
lanjut pertanyaannya : bagaimana supaya tabel ini di field 4 otomatis terisi datanya karena hasil perkalian dari field2 dan field 3?
thks salam
Itu temporary tabel mas, maksudnya ya adanya pas ketika query saja bukan real tabel.
Untuk pertanyaan kedua, perkaliannya bisa dilakukan pada sisi aplikasi, hasilnya diinsert ke field total. Namun cara ini memiliki kelemahan yaitu ketika salah satu field diupdate, data filed total menjadi tidak akurat.
Solusinya perkaliannya dijalankan disisi database, gunakan trigger mas, sehingga ketika salah satu field diupdate, otomatis menjalankan query untuk menghitung total dan mengupdate field total
1. Pak agus,jadi bagaimana supaya bisa otomatis terbentuk data tabel hasil gabungan row semnua? Tdk hanya temporaly tabel, mengingat setiap nanti mau lihat gabungannya harus ketik sql itu lagi kan agak repot? Adakah cara yang otomatis sekali buat saja?
2. Untuk field yang hasil perkalian otomatis keluar, ,. Boleh tolong di bantu kasih contoh sqlnya yang procedure? Sehingga tabel nya menjadi langsung nampak field 1, field2, field 3 dan field 4 nya otomatis terbentuk.. Maklum pak agus.. baru belajar… salam d
1. Itu memang harusnya demikian mas. Jika menginginkan output seperti itu, memang harus pakai UNION, seberapa kalipun, kecuali desain tabelnya diubah, 3 tabel menjadi satu tabel. Jika menambahkan satu tabel untuk merekap 3 tabel tersebut, saya rasa itu bukan desain tabel yang baik, keuali dalam kondisi ekstra ordinary
2. Setahu saya desain tabel yang baik salah satunya tidak ada field yang isinya turunan dari field yang lain, termasuk yang field total tadi, karena field tadi dapat dengan mudah didapat dari fieldd-field lainnya. Kecuali kalau memang kondisi ekstra ordinary. Untuk masalah query yang berulang, memang seharusnya seperti itu tinggal di optimize. Untuk trigger, bisa coba dipelajari ini mas: http://www.sitepoint.com/how-to-create-mysql-triggers/
Ok, thks penjelasannya pak agus, sangat membantu. Salam
simpel mantap, klo menjumlahkan baris satu dnegan baris sebulumnya gmn ya mas?
misal
ID JML PARETO
01 10 10
02 20 30
02 10 40
03 15 55
01 20 75
mencari jumlah pareto
Maksudnya seperti ini mas?
SELECT SUM(PARETO) FROM TABEL
thanks
mau tanya pak agus
misal ada tabel dengan format
nim | nama | alamat | nilai | bulan | tahun
trs saya ingin menampilkan data dengan format
nim | nama | alamat | nilai bulan sekarang | nilai bulan kemarin
itu querynya seperti apa ya
Coba query ini mas:
blm bisa mas
jadi isi di bulan itu dalam format angka 1-12, trs tahun misal 2016
jadi itu pencariaan berdasarkan bulan yg ingin di tampilkan saja mas
jadi misal saya ingin menampilkan data bulan 03 / april, maka saya pilih pencarian berdasarkan bulan april itu,
trs yang ingin ditampilkan adalah bulan sebelumnya dan nilai bulan sebelumnya mas
terima kasih
Blm bisanya kenapa ya mas?, atau cobe seperti ini:
Kalau belum bisa coba ditampilkan contoh datanya mas, biar saya tahu pasti bentuk datanya dan output yang diinginkan
pagi maaf saya newbie, mau nanya. cara menggunakan fungsi aritmatika pengurangan pada tabel yang saya buat. misal id = 1, gaji =1000 cashbon=200 sisa= pengen disi hasil pengurangan gaji-cashbon.
operasinya gmna itu om? terus pengen otomatis ke id selanjutnya. nuwun
Langsung saja mas misal:
Kalau belum bisa, bisa disebutkan data awalnya seperti apa mas….
mas mau nanya ,saya punya tabel seperti ini
tabel a
kode_barang nama minimal
B12 Gula 12
B13 Beras 15
tabel b
kode_detail kode_barang jumlah
D01 B12 5
D02 B13 5
D03 B12 20
pertanyaan saya mas, bagaimana menampilakan data dimana data lebih kecil dari minimal. jadi yang keluar nanti hanya beras gitu mas. Terimakasih sebelumnya
Coba pakai join kemudian pakai operator pebanding
Cara Menampakkan Total Keseluruhan Orderan Gitu Gimana ya?
Menggunkaan grand total mas: http://jagowebdev.com/menghitung-total-dan-subtotal-pada-mysql/
mas sy lagi membuat grand total mirip seperti di atas, tapi bedanya, field saya definisikan varchar,
awalnya lancar jaya mas, sampe saya masukin code yang grand total dia error di :
Select ‘Grand Total’ AS alat.lokasi
code yang saya gunakan ini
dan ini data saya mas
mohon bantuannya mas
Tidak usah pakai AS alat.lokasi mas, langsung SELECT ‘Grand Total’, SUM … karena itu posisinya sebagai row tambahan (UNION ALL), maka kita tidak perlu mendefinisikan nama kolom (menggunakan AS) karena tetep tidak akan dipakai.
Pada contoh diatas saya menggunakan alias hanya untuk memudahkan saja. Jika tetap ingin menggunakan alias, maka tidak perlu menggunakan dot mas, misal SELECT ‘Grand Total’ AS lokasi. Dot digunakan untuk mendefiniskan nama fiel d suatu tabel, sehingga pada kondisi diatas, MySQL akan menganggapnya field beneran buka alias, jadi error.
ty banget mas pencerahannya. mudah2an di balas kebaikan mas
contoh kode SQL seperti ini :
SELECT kelas, jk, COUNT(jk) As jml_jk FROM t_siswa Group BY jk, kelas ORDER BY `t_siswa`.`kelas` ASC
saya coba convert/creat code PHP :
tapi ga bisa saya jalankan di php. mohon bantuannya gimana contoh php secara lengkap
trims sebelumnya mas..
Itu sudah bisa langsung dijalankan di PHP mas, tinggal gunakan mysqli_query:
atau bisa dibaca disini:
http://jagowebdev.com/menghubungkan-mysql-dengan-php-mysqli-dan-pdo/
mau tanya, sy punya tabel dg kolom id, bulan, jumlah (dalam satu tahun). kalau mau ambil data trimester gimana ya? misal jumlah januari-april, jumlah mei-agustus, jumlah september-desember?
Coba pakai SUM CASE mas:
makasih mas, saya coba
saya mau tanya mas saya punya tabel dengan kolom kode_part, nama_part, jumlah, harga, total harga, kalau saya mau mengkalikan jumlah dengan harga trus dapat total harga dan di tambah ppn 10% maka akan menghasilkan grand total gi mana ya mohon bimbingannya ?
Coba menggunakan query semacam ini mas:
mas mau tanya
tabel saya kan ada tabel transaksi bayar, jadi mengambil data dalam 3tabel berbeda pake join, coding nya gmn mas?
Coba pakai join mas:
SELECT kolom.tabel1, kolom2.tabel2, kolom3.tabel3
FROM tabel1
LEFT JOIN tabel2 ON kolom.tabel1 = kolom.tabel2
LEFT JOIN tabel3 ON kolom.tabel1 = kolom.tabel3
Coba kesini mas: Menghitung Field/Kolom Pada Tabel MySQL Dengan Kondisi Tertentu Menggunakan COUNT IF
mas tolong dong,kok aku buat falidasi malah eror ya,mngkin ini bukan pertanyaan yang pas untuk pembahasan tutorial di atas akan tetapi saya mnta tolong dong pencerahan nya
iya mas, pesan errornya seperti apa ya mas? bisa lihat contoh script nya?
misi om saya mau nanya
kalo misalkan
om query untuk jumlah gmana ya om?
Coba menggunakan ini mas:
ass..
om saya sangat bingung dengan penjumlahan ini..
saya ada tugas dari pembimbing untuk membuat total harga.
misalnya saya udh beli 2 hp dengan harga masing” 1.500.000 dan 3.000.000..
pembimbing saya menginginkan agar totalnya menjadi 4.500.000 ketika di minta rekap penjualan..
itu gmna ya mas…
tolong beri scripnya ya om..
danke
Coba bisa dicontohkan datanya seperti apa mas? sama hasil yang diinginkan seperti apa?
Mantap gan… :3
ane nyari2 dri 2 hari kemaren… :v
akhirnya nemu ini…
manfaat gan…
selamat pagi pak agus, mohon bantuannya juga nih
jadi saya mau bkin rekap karyawan berdasrkan asal daerah menggunakan 2 tabel yaitu data_karyawan dan data_pekerjaan
koding nya kurang lebih seperti ini :
datanya berhasil tampil dan sesuai harapan namun terkendala untuk menghitung total karyawan perbaris dan perkolom (grand total) serta persentase di bawah grand totalnya pak
sudah mencoba codingan diatas namun belum sesuai harapan, kira nya bisa d koreksi dan dibantu pak agus
Saya kesulitan memahami permasalahannya mas. Bisa dicontoh kan tabel datanya dan tabel hasil yang diinginkan?
oh iya pak, maaf yah membuat bingung. tabel nya kan ada 2 nih pak, tabel data_karyawan dan tabel data_pekerjaan
data_karyawan :
ket. status p = penempatan, soalnya data mutasi ane kasih status=m
hasil yg d inginkan
ket. hr = harian, bln = bulanan, hr_kalimantan dan bln_kalimantan itu adalah jumlah karyawan yang berasal dari luar melawi gan, walaupun prov nya melawi itu kalbar tetap gak d hitung, yang dihitung yg selain dari melawi, sedangkan pendatang itu yang diluar kalimantan, entah itu dari jawa, papua, sumatera itu dihitung sebagai pendatang.
yg saya belum bs itu menghitung jumlah, grandtotal, persentase, % karyawan lokal , % karyawan pendatang
mohon bantuannya pak agus
Hindari penggunaan subquery mas, karena akan mempengaruhi performa, coba gunakan CASE.
Query ini ada tiga bagian
1. Bagian pertama menghitung per bagian
2. Bagian kedua menghitung jumlah
3. Bagian ketiga menghitung persentase
Ketiganya dipisah UNION ALL
Coba dipelajari mas…
Atau bisa dibuat dua bagian menggunakan WITH ROLLUP
Hasil keduanya sama:
Pada tabel diatas, terdapat desimal dua digit pada hasil penghitungan. Hal ini karena kita menggunakan UNION, MySQL akan menyesuaikan tipe datanya, untuk mengatasinya bisa gunakan CONCAT pada persentase
maaf baru balas lagi mas agus, kemarin kayaknya udah balas tp kelihatannya tidak masuk nih
jd koding d atas udah d coba mas agus, berhasil tp untuk hasil d kolom total itu masih salah, hasilnya kisaran 31 – 35, lalu total-jumlah itu 3131, total-persentase itu 31303025. padahal data di tabel karyawan cm 9 data, tabel pekerjaan itu 11 data aja.
apakah structure database saya ada yang salah yah ? di tabel data_karyawan ada
id_kar, int(5), auto_inc
status_gaji, varchar(1)
kab, varchar(30)
prov, varchar(30)
sedangkan data_pekerjaan
id_kerja,int(10), auto_inc
id_kar,int(5)
status, varchar(1)
bagian, varchar(15)
u/ yang status gaji sudah saya ganti menjadi int(1) tp hasilnya tetap sama, kira nya apa yang perlu d perbaiki yah mas ?
Saya belum paham mas maksudnya, tapi kalau lihat struktur tabelnya tidak ada masalah. Saya pakainya varchar semua tidak masalah, mysql akan otomatis melakuakan type casting jika diperlukan
Pada jawaban saya kemarin saya tambah beberapa data agar hasilnya lebih real. Bisa minta tlg data full tabel nya seperti apa mas? Sama contoh outputnya, kalau kepanjangan bisa dikirim via email
iya mas, saya emailkan aja sql ama output yg d inginkan
tolong emailnya mas, terima kasih
ini mas: prawoto.hadi@gmail.com
udah dikirim mas,
iya mas
mas saya mau tanya untuk menjumlahkan sub total itu bagaimana, seperti nilai 1, nilai 2 pada tabel terus kita jumlahkan seperti
SELECT nilai1 + nilai2 as jumlah from nilai
lah masalahnya untuk menjumlahkan nilai keseluruan nilai pada as jumlah itu bagaiman?
tolong solusinya master please
Intinya kalau menjumlahkan antar kolom pakai operator + mas, antar baris pakai fungsi SUM, semua baris pakai WITH ROLLUP atau Subquery
Jika yang dimaksud yang ketiga, bisa di baca tutorial ini mas: Menghitung Total dan Subtotal Pada MySQL
Selamat malam mas Agus saya mau tanya..sebelumnya terima kasih banyak telah merespon
NIS | Nama | Tanggal 1 |Tanggal2 | Tanggal3 | Tanggal4 | Tanggal5 | Jumlah Huruf H
011|Rudi | H | H | H | I | S | ??
002 | Anto | S | A | S | H | H | ??
Bagaimana query untuk mendapatkan nilai pada kolom Jumlah Huruf H tersebut , terima kasih mas Agus, sehat dan jaya selalu..
Sama sama mas,
Intinya jika ingin melakukan operasi antar kolom, gunakan operator aritmatika seperti + atau -, sedangkan operasi antar baris, gunakan fungsi agregat seperti SUM() atau COUNT() sehingga pada contoh diatas kita gunakan operator +
SELECT tanggal1, tanggal2, dst.., tanggal1 + tanggal2 + dst… AS jumlah_huruf_H
Mantepsss mas, ni yang lg dicarii.
sering buka tutornya jagowebdev..
Sya ijin aplikasikan yah.
tks salam hangat..
Iya mas, sama sama…
mas minta pencerahannya,
saya ingin menampilkan data dalam 1 bulan. dari kolom tanggal. dan kolom quantity
1. dalam 1 hari(pertanggal) bnyak nilai input (contoh 3-4x input) jadi dalam 1 hari ada bnyak data.
saya ingin menampilkan data 1 bulan, tapi yang dimunculin pertanggal. dan klo ada tanggal sama quantity nya di sum automatis.
jadi hasilnya misal kaya gini.
Tabel transaksi
id_ tgltransaksi quantity
1 2016-12-01 200
2 2016-12-02 300
3. 2016-12-03 400
karena hasil query 2 kolom ini mau saya tampilkan ke highchart.
Mohon bantuannya mas.. Terimakasih banyak.
azmiftah85@yahoo.co.id
Tinggal di group berdasarkan tanggal transaksi mas. Coba pakai query ini:
aku coba ya mas agus,, mantaps nih ilmunya..
Trimakasih.
Iya mas, sama-sama
Yth Mas Agus,
Udah aku jalankan diatas tapi error, (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘SUM(reg) as reg)
Tapi gini deh mas biar jelas.
============================= TABEL
idprod | tanggal_trk | qtyreg |Qtyproc |iduser
————————————————————————————
1 2016-12-01 02:11:10 15106 859 1 1
2 2016-12-03 05:09:19 15518 400 2 1
3 2016-12-05 03:17:13 1176 600 3 1
4 2016-12-06 00:00:00 10834 504 1
5 2016-11-01 02:10:10 16243 201 5 2
6 2016-11-03 10:07:00 17424 20 6 1
7 2016-11-05 10:00:00 17432 7607 3
8 2016-11-07 10:00:00 19271 134 8 1
jadi datanya kan banyak, sya mau tampilkan data range date per 1 bulan dalam tahun xx.
saya butuh nilai QTYREG dan QTYPROC.
pada saat saya ambil 1 bulan, data di QTYREG & QTYPROC dengan tanggal yg sama langsung ditotal aja. jadi yang muncul hanya tgl 1-31.
Klo dalam 1 tanggal ada 4 inputan maka langsung ditotal sum.
Mohon bantuannya mas, terimakasih sebelumnya..
ajmiftah85@gmail.com
Itu jumlah kolom di header beda sama jumlah kolom diisinya mas. Asusmsi seperti ini ya mas:
Catatan: saya tambahkan 1 baris di paling bawah untuk tes hasil query.
Intinya untuk melakukan penjummlahan antar baris, gunakan fungsi agregasi SUM(). Coba pakai query ini mas:
Hasil:
Pada contoh diatas, data qtyreg dan qtyproc di total seperti pada tanggal 03.
mantaps dan luar biasa mas APH, hasilnya sudah sesuai harapan.
Btw klo ada (AS) fungsinya apa, dan yang dibelakang as itu fungsinya jg gmn ya mas?
Ilmu yang bermanfaat, semga berkah mas n sehat terus..
Ditunggu updatean upload materinya..
Terimakasih,
Amin, sama sama mas…
AS digunakan sebagai alias mas yang akan ditampilkan sebagai header tabel hasil query. Misal:
SELECT tgl_trx, SUM(qtyreg) , SUM(qtyproc), Hasil:
SELECT tgl_trx, SUM(qtyreg) AS jml_1 , SUM(qtyproc) AS jml_2, Hasil:
Hal ini berguna utuk memudahkan pengolahan data, misal daripada meulis $row[‘SUM(qtyreg)’] lebih mudah $row[‘qtyreg’], selain itu juga bermanfaat jika kita melakukan query antar tabel yang memiliki field yang sama, karena ketika kita oleh dalam bentuk array, nama field yang sama akan bergabung menjadi satu.
Dear Mas Agus,
Untuk bisa dan berhasil saya praktekkan di PHP.
cuma saya ada kendala, mhon pencerahannya mas.
Ketika saya padukan untuk ditampilkan ke highchart Grafik, itu kendala tanggalnya jadi ga beraturan. ada yang bolong. secara
jadi minta pencerahannya, antara SUM data diatas + convert datetime to javascript.
saya menggunakan begini mhon koreksi.
( $menu=array();
$menu2=array();
$result = $conn->query(“SELECT tgl_trx, SUM(qtyreg) as qtyreg FROM tabel_s WHERE MONTH(tgl_trx)=’12’ AND YEAR(tgl_trx)=’2016′ GROUP BY DATE(tgl_trx) order by tgl_trx”);
while ($row = $result->fetch_assoc()) {
$date = strtotime($row[‘tgl_trx’]);
$date = $date *= 1000 ;
$menu[] = $date;
$menu2[] = $row[‘qtyreg’];
}
$aray=join(” ,”,$menu);
$aray2=join(” ,”,$menu2);
)
Plus klo hasil QTYreg bisa pembulatan.
Mohon bantuannya mas agus,
Terimakasih bnyak.
Coba di view source mas, apakah javascriptnya sudah bener.
Pastikan bentuk data di javascript sudah array atau object.
Untuk yang array, coba diganti:
$aray= ‘[‘ . join(‘,’,$menu) . ‘]’;
$aray2= ‘[‘ . join(‘,’,$menu2) . ‘]’;
Itu datenya dikali 1000 kenapa mas?
Untuk pembulatan bisa menggunakan fungsi ROUND di SQL mas, misal:
SELECT tgl_trx, ROUND(SUM(qtyreg)) as qtyreg
Dear Pak APH,
Terimakaish pak sudah berhasil.
CUma saya mau digabungkan antara sum dan AVG, nilai dari QTYREG mau diambil avg min dan max nya.,
Jadi dari tabel diatas itu mau hasilnya.
1. dikeluarin berdasarkan tanggal dan di QTYReg di sum (sudah ok)
2. dari data QTYreg ini mau saya ambil avg min dan Max nya.
Saya menggunakan mysqli_prepare.
Mohon pencerahannnya mas aGus,
Terimakasih.
Sudah bisa belum ya mas? oiya untuk yang avg min dan avg max nya maksudnya bagaimana ya mas? biasanya avg hanya berupa satu nilai yang mencerminkan nilai rata-rata dari data
Dear Mas Agus,
Sudah jalan untuk sum dan Grafiknya.
Yang kmrin dari mas agus ini :
sudah bisa, cuma saya dari query diatas ingin mengambil Hasil angka yang Minimal dan angka Maksimal dari [sum(reg)] as pReg.
Nah gabungkan antara sum dan agregation min dan max, mhon pencerahannya mas.
Karena akan ditampilkan berbeda antara pReg SUm dan nilai maksimah dari pReg.
Maaf nih bolak balik tanya..hehehe
matur suwun.
Untuk mencari min dan max dari pReg bisa dengan dua cara mas, bisa dengan PHP, bisa dengan SQL. Dengan PHP, loop hasil query diatas, buat array berisi data pReg, kemudian cari value minimal dan maksimal dari array tersebut
Cara kedua, bisa menggunnakan subquery:
Hasil:
Dear Mas agus,
Untuk menampilkan di PHP dengan alias ini saya masih awam mas,
mohon diberikan contohnya. klo via sql sudah bisa.
sya coba2 hasilnya jadi tidak jalan.
setelah ditambahkan fungsi max n min ini jadi tidak keluar hasilnya.
mhn maaf mas agus merepotkan, masih belajar.hehe
Terimakasih banyak.
Coba ini mas:
DARI QUERY:
DARI PHP ARRAY
Hindari penggunaan mysql_query, gunakan mysqli_query, karena di php versi terbaru mysql_query sudah dihapus
Mas Agus,
Terimakasih sudah bisa, berfungsi dengan baik dan bisa integrasi dengan grafik.
cuma maaf ada 1 lagi nih,
dari mas agus diatas, untuk menampilkan Max & Min sudah ok.
CUma klo misal saya ingin mengambil tanggal dan nilai max . saya coba tambahkan select tanggal ga berhasil.
Jadi klo yang nilai maksimun tanggal 5 Desember 2016. saya mau ambil tanggal nya & nilai maks nya.
Terimakasih atas bantuan dan ilmunya mas agus.
Sama sama mas…
Coba pakai query ini:
Hasil:
Mas,
Klo ada where Bulan dan Tahun dimana menambahkannya. sya coba2 cuma bisa keluar tahun aja.
Jadi saya mau filter bulan 12 tahun 2015.
Jadi QTYKG diambil max + di sum by tanggal, jadi diambil nilai max dalam sebulan dari tgl tsb.
jadi hasilnya tanggal sekian, nilai max/min sekian.
Terimakasih bnyak mas,
Scriptnya seperti apa mas? apa maksudnya seperti ini:
Atau nilai min per bulan?
Hasil:
Maaf mas agus membuat bingung,
Jadi begini. ini tabel contoh Desember 2016.
—————————————–
Itu kan ada tanggal sama, sya ingin mengambil Tanggal berapa dan nilai max nya, (nilai max di sum by tanggal).
jadi dalam 1 bulan hasil yg mau dicapai seperti dibawah ini.
Hasil.
=====
Dari hasil diatas permasalahannya adalah, hari yang ditampilkan tidak match dengan nilai tertinggi, harusnya nilai max 15518 adalah tanggal 2016-12-02. ini malah tanggal lain. sya cob
=== SCRIPT QUERY yang sya jalankan
# SELECT tb_temp.id, tb_temp.hari, MAX(pReg) AS max_pReg
FROM ( SELECT idperiod as id, date(tanggal) hari, date_format(tanggal, ‘%d’) as pTgl, SUM(reg) as pReg, SUM(reproc) as pReproc
FROM dprod_datetime WHERE MONTH(tanggal)=12 AND year(tanggal)=2016 GROUP BY pTgl ORDER BY tanggal ASC ) AS tb_temp.
===== tabel nya
Mohon pencerhannya mas agus, mwtur suwun sanget.
Coba query ini mas:
Hasil:
Mas agus,
Terimakasih jawaban2nya dan ilmunya., sudah bisa.
Mas share tentang upload / insert file excel ke database.
Terimakasih
Aang
Sama sama mas…
Iya mas, semoga bisa sempat merealisasikannya.
Intinya ada dua cara mas:
1. Baca file excel dengan library excel reader kemudian susun query insert, selanjutnya eksekusi query tersebut.
2. Jika file sangat besar, hingga ratusan ribu rows, bisa disimpan dulu ke temporary file bentuk .csv kemudian gunakan statement LOAD LOCAL INFILE
saya mencoba dengan file bnyak berat, sampe time out, sya naikan sampe brp menit di php.ini nya.
terus kendala lagi, data yg isinya float/decimal ga bisa input ke database dgn utuh alias dibulatkan ya?
tks.
Ini file excelnya diupload pakai web mas?
Coba di cek lagi, time outnya karena apa? Apa proses upload filenya, proses parsing data excelnya, atau proses insert datanya
Data yang dimasukkan berapa row?
udah sya naikaan mas timeoutnya diatas 3menit..ehhe
Mas bisa share tentang payrol dengan PHP?
sya ingin sistem gaji seperti gaji pokok, tunjangan potongan2, bonus, lembur, nilai kerajinan.pph, saya googling masih blm menemukan sample yang pas..
Kalau ada bisa dishare mas contohnya..
hehehe.
Suwun mas agus.
Maaf mas, belum ada aplikasi semacam itu….
ok terimakasih banyak mas agus,,
atas ilmu2nya. ditunggu artikel2 lainnya yg lebih menarik, seputar Mysql dan PHP yah.klo bisa javascript mas..hehe
Suwun
Iya mas… sama sama
selamat malem mas agus….
maaf ngganggu nich.
mohon bantuannya ya mas
Pemrograman menggunakan PHP
database MySQL
semua tipe data varchar (50)
tabel DataKelas
dari tabel DataKelas diatas saya ingin menjumlahkan dan mengelompokan data berdasarkan jenis kelamin dan hasil penjumlahan dimasukan pada tabel JenisKelamin dibawah ini
tabel JenisKelamin
mohon petunjuk dan sarannya
bagaimana script PHP nya untuk menyelesaikan permasalahan saya tersebut, sudah dua malem saya otak atik belum ketemu juga
atas bantuannya saya ucapkan terimakasih 🙂
Intinya buat query sehingga format data sesuai dengan format tabel yang ingin dimasukkan datannya mas.
Query:
Hasil:
Selanjutnya tinggal gunakan statement INSERT intuk memasukkan data hasil query tersebut
Untuk kode PHPnya tinggal jalankan query diatas mas:
maaf mas maksud pertanyaan saya adalah menjumlahkan semua jumlah siswa laki2 dan jumlah semua perempuan berdasarkan jurusan (IPA, IPS & BHS) kemudian hasil penjumlahannya di masukan pada tabel yg lain.
tabel DataKelas
yang di jumlahkan adalah
19 org pria di kelas 3IPA dan 19 org pria di kelas 2IPA hasilnya 38 dan kemudian dimasukan ke tabel jenis kelamin.
22 org wanita di kelas 3IPA dan 22 org wanita di kelas 2IPA hasilnya 44 dan kemudian dimasukan ke tabel jenis kelamin.
hasil penjumlahan di tabel JenisKelamin
jadi yg masih saya bingun scrip php untuk menjumlahkan 19 org pria kelas 3IPA dan 19 org pria kelas 2IPA dan hasilnya 38 dan dimasukan ke tabel JenisKelamin
maturnuwon 🙂
Oh, begitu ya mas…
Ada dua cara mas, bisa dari sisi SQL nya atau PHP nya. Karena artikel terkait dengan SQL, saya bahas dari sisi SQL ya mas:
Pertama, karena kelas tidak memiliki ID, maka kita perlu buat data kelas dengan jurusan utama yang sama:
Hasilnya:
Selanjutnya kita jumlahkan siswa berdasarkan jurusan utama:
Hasilnya:
Selanjutnya kita tambahkan query untuk memasukkan data:
Untuk script PHP nya, sama dengan jawaban saya sebelumnya:
maturnuwon sanget mas agus 🙂
Sami sami mas…
selamat Pagi Mas agus mohon masukannya :
saya punya Query spt berikut
SELECT `no_penjualan`,`NIK`, `kd_item`,`bulan`,`tahun`,`jumlah`, (SELECT ROUND(AVG(`jumlah`)) FROM tbpenjualan WHERE `no_penjualan` a.`no_penjualan` – 4) AS forecast, (SELECT jumlah – forecast) As eror, (SELECT jumlah – forecast /3 ) As MAE, (SELECT eror * eror ) As MSE FROM tbpenjualan a where kd_item =’v5′
UNION ALL
SELECT “” AS no_penjualan,
“” AS NIK,
“” AS kd_item,
“” AS bulan,
“Grand Total” as tahun,
SUM(`jumlah`) AS jumlah,
SUM(‘forecast’) AS forecast,
SUM(‘eror’) as eror,
sum(‘MAE’)as MAE,
sum(‘MSE’) as MSE
FROM tbpenjualan
hasilnya : https://s27.postimg.org/ue2altlhv/SUM.jpg
saya bingung mau nambahin query :
SELECT MIN(`no_penjualan`)+3 as `no_penjualan` from tbpenjualan
masud saya itu biar nanti hasil Grand totalnya itu hanya menghitung dari Apr sd des dstnya aja.
terima kasih.
Apa maksudnya seperti ini mas? Ditambahkan klausa where?
terima kasih mas agus sangat membantu.
Sama sama mas…
met sore mas agus, maaf ganggu nih…
mohon bantuannya ya mas
ada 4 tabel:
dari tabel diatas saya mau buat perintah sql untuk menampilkan data seperti ini:
note: bg_cargo1 di ambil dari summary conv_tonase yang ada pada table port_conveyor
return1 didapat dari summary bg_cargo dikurang mv_cargo
mohon pencerahannya mas agus 🙂
Coba pakai query ini mas:
Hasil:
kalau mau menambah seperti ini:
mv_date|mv_name|mv_shipper|tugboat1|tongkang1|bg_cargo1|mv_cargo1|Return1|tugboat2|tongkang2|bg_cargo2|mv_cargo2|Return2|
12/01/2012 MV. EASTERN VIEW Arutmin Jhoni 3 Liana 3 7.000 7.000 0 Jhoni 2 Liana 2 5.500 5.500 0
sebenarnya sampai 5 mas agus, tapi karena kepanjangan jd ambil sampai 2 sbg contoh.. kalau begini kira2 bagaimana query nya mas agus… maaf ngerepotin mas agus
Coba dipelajari tentang pivot tabel dinamis mas: Pivot Table Dinamis Dengan MySQL
terimakasih banyak atas bantuannya mas agus
Sama sama mas…
kalo menambah satu kolom lagi buat rangking gimana, saya sudah coba berbagai query untuk disatukan dengan query diatas kok gk ada yang cocok ya? bagaimana ya susunan querynya
Ada contoh datanya dan contoh hasil yang diinginkan mas?
datanya dibawah ini , agak berantakan, gunakan phpmyadmin
Saya coba hilangkan join nya ya mas, soalnya tabel profilsiswa tidak ada.
Apa yang dimaksud seperti ini?
Hasil:
waktu saya copy paste sintax nya kok ada yang error ya mas??
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘LIMIT 0, 25’ at line 6
trimakasih mas sebelumnya udah mau bantu,
Sama sama mas….
Coba dicek lagi mas, mungkin ada kesalahan penulisan syntax di akhir query atau tipe data yang tidak sesuai?
Coba di break dan dijalankan lagi query nya satu per satu dan diperhatikan errornya pada bagian query yang mana.
pada baris ke 6 mas.
FROM nilai_akhir, (SELECT @row_num := 0) AS nilai_awal
Mencobanya di phpMyAdmin ya mas? phpMyAdmin memang kadang seperti itu, dia menambahkan klausa LIMIT untuk membatasi hasil query yang ditampilkan namun terkadang penambahannya tidak pas pada tempatnya, sehingga malah error.
Untuk mengatasinya, coba dibalik urutannya mas, menjadi:
sudah bisa mass, dengan query yang dibalik, trimakasih mas,, penjelasan anda sangat sangat membantu, ku baru tahu juga ada pengaruh menggunakan phpadmin
Iya mas, sama sama…
ada kasus lagi mas,
ketika nilai total saya hapus kok malah error ya, tujuannya saya ingin memunculkan rangking disetiap semesternya, mohon bantuannya,
sebenarnya @row_num := @row_num itu apa mas?? bisa dijelaskan sedikit,??
Ada contoh lengkapnya hasil yang diinginkan seperti apa mas?
Query yang error seperti apa?
Sebenarya kita hanya membuat nomor urut saja mas. kita gunakan variabel bernama row_num, untuk menulis variabel, gunakan @, untuk memberi nilai, gunakan :=
Ketika meng eksekusi query, pertama2 MySQL akan membaca bagian FROM, pada bagian tersebut kita definisikan variabel @row_num dengan nilai 0, setelah nilai variabel tersimpan, selanjutnya ketika mengeksekusi statemen SELECT, maka nilai @row_num akan selalu bertambah satu
Pendefinisian variabel didalam select untuk memudahkan agar menjadi satu statemen, contoh lain:
Selamat malam mas Agus, saya nyoba coding seperti ini
hasilnya
yang saya butuhkan total itu menjadi setor – tarik jadi seperti ini:
mohon bantuannya mas, apa yang harus dirubah dari koding saya ya? terima kasih sebelumnya.
Coba ini mas:
pak saya ada kasus penjumlahan di query , tapi ko yg proses bervariabel hasilnya NULL di subtotal dan pajak
SELECT username,
nama,
SUM(IF( jenis = ‘trx1’, bayar, 0)) AS jml_trx1,
SUM(IF( jenis = ‘trx2’, bayar, 0)) AS jml_trx2,
SUM(IF( jenis = ‘trx3’, bayar, 0)) AS jml_trx3,
SUM(IF( jenis = ‘trx4’, bayar, 0)) AS jml_trx4,
@total:=SUM(bayar) AS TOTAL,
@jml:= SUM(bayar) * 0.02 AS jml_bag1,
@sub1:=@total-@jml1 AS subtotal,
$pajak:=@sub1*0.01 AS pajak
FROM transaksi
LEFT JOIN member USING(username)
GROUP BY username
Sudah coba dipanggil variabel nya mas? SELECT @total, @jml
Ada contoh data dan output yang diinginkan?
username nama jml_trx1 jml_trx2 jml_trx3 jml_trx4 TOTAL jml_bag1 subtotal pajak
BK1000001 MASTER 2120700 375000 47000 0 2542700 50854 NULL NULL
BK1000002 SITI AISYAH 267500 6000 0 0 273500 5470 NULL NULL
BK1000003 SITI HARYATI 242500 6000 0 0 248500 4970 NULL NULL
BK1000004 EUIS ALTHEA 187500 6000 0 0 193500 3870 NULL NULL
BK1000005 KEN AROK 245000 6000 0 0 251000 5020 NULL NULL
yg diinginkan subtotal berasal dari TOTAL-jml_bag1 dan pajak 10 dari subbtotal
itu data hasil olahan ya mas? Data awalnya seperti apa ya mas?
itu data hasil transaksi kurang lebih datanya sepert ini
username bayar jenis
BK1000033 12500 trx1
BK1000001 125000 trx1
BK1000002 125000 trx1
BK1000001 62500 trx2
BK1000003 125000 trx2
BK1000002 62500 trx3
BK1000001 25000 trx4
Jika mengisi nilai variabel dari fungsi agregasi maka hasilnya menjadi tidak pas mas, karena penggabungan row nya tidak sinkron dengan pendefinisian variabel, coba bandingkan yang ini:
Hasil:
Sama ini:
Hasil:
baik pak, terimakasih banyak atas ilmunya
Sama sama mas…
Gan mohon bantuannya saya memiliki tabel bernama biodata_wni yang berisi beberapa field diantaranya NIK | NAMA | TANGGAL_LHR | JENIS_KLMIN | AKTA_LHR | NO_AKTA_LHR | FLAG_STATUS. Bagai mana menampilkan jumlah dan prosentase kepemilikan akta dan tidak memiliki berdasarkan jenis kelamin. Gimana memodifikasi script jika scripnya seperti ini :
select
cc no
,case when cc is null then ‘JUMLAH’ else
getnamakec(cc,ck,cp) end kecamatan
,sum(ja)+sum(jt) as jml_00_18
,sum(ja)jml_ada,round(sum(ja)*100/(psn),2) psn_ada
,sum(jt)jml_tdk,round(sum(jt)*100/(psn),2) psn_tdk
,” keterangan
from
(
select
no_prop cp,no_kab ck,no_kec cc
,case when akta_lhr in(2) then 1 else 0 end ja
,case when akta_lhr in(1) then 1 else 0 end jt
,(select count(*)
from biodata_wni where flag_status in(‘0’)
and floor(months_between(‘1-JAN-2012’,tgl_lhr)/12)
between 0 and 18
) psn
from biodata_wni where flag_status in(‘0′)
and floor(months_between(’30-JUN-2016’,tgl_lhr)/12)
between 0 and 18
)
group by
grouping sets((cp,ck,cc,psn)
,(cp,ck,psn)
)
order by 1;
Terima kasih sebelumnya semoga mendapat jawaban
Ada contoh datanya mas? sama tabel output yang diinginkan seperti apa?
Untuk contoh data kolom nama berisi nama, tanggal_lhr berisi ddmmyyyy, jenis_klmin berisi angka 1 untuk laki2 dan 2 untuk perempuan, akta_lhr berisi angka 1 jika tdk memiliki dan 2 memiliki, no_akta_lhr berisi nomor akta, flagstatus berisi angka 0. Dan untuk outputnya NO | KECAMATAN | JUMLAH LAKI2 | JUMLAH PEREMPUAN | KETERANGAN. dibawah kolom jumlah laki2 ada sub kolom lagi ADA AKTA | % ADA | TDK ADA AKTA | % TDK ADA . Begitu pula pada kolom jumlah perempuan. Maaf gan nulisnya melalui handphone jadi ribet dah
Lupa gan dalam script itu ada 0 and.18 maksunya filter untuk usia 0 s/d 18 tahun saja
Apa maksudnya seperti ini mas?
Output:
Menghitung persentasenya seperti apa mas? apa dibagi apa?
maap pak gimana ya mencari total nilai transaksi per bulan pada tahun tertentu, saya sudah coba cara bapak sebelumnya tetap ga bisa
Ada contoh data dan output yang diinginkan seperti apa mas?
Assalamualaikum pak agus saya ingin meminta solusi bagaimana jika menggabungkan antara count dengan max? Jadi, pertama saya ingin meng-cout jumlah record yg value-nya adalah x, lalu saya ingin max var x tersebut.
id| nama_panggilan | jenis_klmin | kehadiran | tanggal |
1 | Lorem | 1 | 3 | 2017-02-03 |
2 | Ipsum | 2 | 4 | 2017-02-03 |
3 | Lorem | 1 | 2 | 2017-02-04 |
4 | Ipsum | 2 | 1 | 2017-02-04 |
5 | Lorem | 1 | 5 | 2017-03-01 |
6 | Ipsum | 2 | 3 | 2017-03-02 |
Nah, si var x itu bisa berisi 4 /3 /2. Begitu kurang lebih yg ingin saya tanya kan pak hehe
Terima Kasih sebelumnya
Wassalamualaikum …
Coba gunakan fungsi COUNT dan MAX mas:
Saya punya 4 Tabel
anggota (kode_anggota, nama_anggota)
wajib(kode_anggota, masuk, keluar)
manasuka(kode_anggota, masuk, keluar)
pokok(kode_anggota, masuk, keluar)
Bagaimana caranya kalau saya ingin menampilkan data dengan urutan :
(kode_anggota, nama_anggota, sum(wajib.masuk-wajib.keluar), sum(manasuka.masuk–manasuka.keluar), sum(pokok.masuk–pokok.keluar), jumlah (sum(wajib.masuk–wajib.keluar) + sum(manasuka.masuk–manasuka.keluar) + sum(pokok.masuk–pokok.keluar)). Terima kasih
Secara umum, gunakan JOIN mas, misal:
Akan lebih mudah menjawabnya jika ada contoh tabel data dan output tabel yang diinginkan mas…
mau nanya mas kalo misalkan saya punya data seperti ini :
Pengen jadi seperti ini gimna ya mas
Terimaksih
Untuk model seperti itu, setahu saya perlu menggunakan bahasa pemrograman struktural mas, seperti php, karena untuk memunculkan total, tidak bisa menggunakan WITH ROLLUP, karena tidak ada data yang di group
boleh minta contohnya mas, kayak gimana yah?
saya cari cari di internet keywordnya agak susah.
Coba menggunakan keyword membuat tabel report dengan php
keren
siang pak,, jika ingin menjumlahkan hasil data yang dipangkatkan dalam satu field itu gmna ya pak..?
misal dalam field c1 ada data nilai 2,3,4 dan n (ketika data diperbarui atau ditambah).. nah gimana caranya membuat perhitungan (2^2)+(3^2)+(4^2)+(n^2).. mohon pencerahannya pak…
Coba gunakan fungsi POW atau POWER mas, misal: SELECT POW(c1, 2) FROM tabel
berarti klau ingin mencari hasil jumlah dari (2^2)+(3^2)+(4^2)+(n^2) menggunakan SELECT sum(POW(c1, 2)) FROM tabel gitu pak?? krna saya coba sum(POW(c1, 2)) hasilnya tidak sama dengan menggunakan excel. bisa dikasih contoh pak..?
dan tanya lagi pak kenapa kalau saya menggunakan coding ini $d1 = max (array($c1)); kok hasilnya gak keluar sesuai data pak?? padahal hasil dari variabel $c1 itu adalah 0.002, 0.002, 0.01, 0.002, 0.006 ,n. seharusnya itu kan yg muncul 0.01 krna paling besar, tp hasilnya yg muncul malah 0.006 pak,, saya ganti dari max ke min pun ya tetap 0.006 hasilnya,,mohon pencerahannya pak,,
mohon maaf bapak agus,,untuk maslah yang pertama sudah beres ternyata memang dtambah sum,,
dan mksud pertanyaan saya yang kedua itu kan $c1 mrupakan hasil kalkulasi dari sum(POW(c1, 2)) itu td dengan data lain pak,,kan otomatis datanya ya akan banyak sesuai jumlah baris pada field,, jadi saya ingin mencari nilai maksimal dari $c1 itu dan menggunakan coding $d1 = max (array($c1));,,tp hasilnya kok tetep meskipun dibuat min jg,,
Bingung saya mas, 😀
Ada contoh tabel nya seperti apa saya contoh hasil yang diinginkan seperti apa?
hh mohon maaf bapak agus,,gini lo maksd saya,,
$crsum = mysql_query(“SELECT sum(pow(c1,2)) as sumK1 FROM nilaicpj”);
$sum = mysql_fetch_array($crsum);
$kaa1 = round($dt4[‘c1’]/sqrt($sum3[‘sumK1’]),2); // ini ditampilkan ditabel
$ba1 = round(($kaa1*0.467),2); // ini ditampilkan ditabel
$c1 = round(($ba1*$rata1),4); // ini ditampilkan ditabel
$d1 = max (array($c1));
nah untuk mencari nilai maximum dr hasil kalkulasi itu kok gak bisa ya pak,, kan seharusnya data di $c1 itu banyak data krna hasil kalkukasi dr tabel nilaicpj pada field c1,,inginnya diambil nilai maximal.nya pak,,mohon pencerahaanya,,
boleh minta nomor bapak agus,,??saya sangat membutuhkan bantuan bapak agus,,
Coba kirim email mas ke prawoto.hadi@gmail.com beserta contoh datanya
Coba sampple tabel c1 nya mas seperti apa?
Kodenya ngga komplet ya mas? banyak variable baru seperti $dt4[‘c1’], $sum3[], tidak tahu asalnya dari mana. coba contoh datanya seperti apa dan output yang diinginkan seperti apa?
ini pak tabelnya dr db dan ditampilkan sperti ini juga di php ;
kemudian dikalkulasi dimana sesuai rumus 3/akar dr ((3^2)+(3^2)+(3^2)+(1^2)+(3^2)) yg hasilnya 0,49 ditaruh di baris a1 dan kolom c1,dst,
ini berhasil dg coding $crsum = mysql_query(“SELECT sum(pow(c1,2)) as sumK1 FROM nilaicpjâ€Â);
$sum = mysql_fetch_array($crsum);
$kaa1 = round($dt4[‘c1’]/sqrt($sum3[‘sumK1’]),2);
yg mana $dt4[‘c1’] untuk menampilkan data asli c1 dan $sum3[‘sumK1’]) untuk memanggil sum(pow(c1,2)).
kemudian ditampilkan jadi seperti ini ;
nah untuk menampilkan nilai max,min dan sum nya gmna pak??,,sedangkan data a1-a5 itu nanti bisa bertambah a6 a7 dsb dan jg bisa berkurang.,mohon pencerahannya pak agus,,,
Itu yang baris a4 dapat 0,16 perhitungannya dari mana mas?
kan data awal a4c1 = 1 pak,,jd dihitung dg rumus 1/akar((3^2)+(3^2)+(3^2)+(1^2)+(3^2)+(n)),,begitu jg dg data a4c2 = 3, dan dihitung dg rumus 3/akar((5^2)+(5^2)+(5^2)+(3^2)+(5^2)+(n))
maaf tabel saya salah,,c4 tu tidak ada.
setelah dikalkulasi,,
Pakai SQL saja sudah cukup mas:
Tabel:
SQL:
Hasil:
Yang lainnya dilanjutkan sendiri dulu ya mas….
terimaksih ya bapak atas pencerahannya,,,mohon maaf merepotkan bapak,,,
Sama sama mas…
pak agus mohon contohnya untuk pnerapan ke php,,krna saya coba coding ini
semua datanya sama,,padahal harusnya baris a4 itu 0.16
dan ketika saya panggil $sum[‘total_c1’] malah gakmuncul pak,,
Disaya sudah benar mas:
Hasil:
ternyata susah ya pak kalau kurang update seperti saya ini,,sebelumnya terbiasa menggunakan mysql sekarang sudah mysqli,,dan bnyak fiturnya,,setelah saya ganti susunan source code saya ke mysqli jd bnyak yg error,,hadeeeh
Pakai mysql_query bisa mas, tergantung versi PHP nya…
Pakai mysql_query bisa mas, tergantung versi PHP nya…
makasih ya bapak pencerahannya,, mohon maklum kalau saya banyak tanya,masih awam dalam dunia mysql dan website, moga amal bapak dibalas oleh allah,,,terimakasih bapak agus,, jangan bosan2 menjawab pertanyaan saya ya bapak,,hehe
Amin…. terima kasih mas
Selamat siang pak
Saya mau tanya gimana ya caranya agar bisa menambahkan point menggunakan RFID. jadi setiap ditag kartunya maka point akan bertambah
Terima kasih
Saya bingung mbak, maaf ini tentang apa ya mbak?
mas saya mau tanya jadi saya rencananya fasilitas cetak yang dimana sesuai angsuran
misal total angsuran 400
pilih menu cetak angsuran 1 maka hasilnya (total angsuran-angsuran1)400-100 =300
pilih menu cetak angsuran 2 maka hasilnya (total angsuran-(angsuran1+angsuran2))400-100-100=200
tabel uang_pangkal ==>untuk menentukan jenis angsuran
nis||nama_angsuran||jumlah bayar
111 ||angsuran_1||100
111||angsuran_2||100
tabel_siswa ==>untuk menentukan nominal tanggungan angsuran
nis||up||us||
111||200||200
Coba pakai WHERE mas:
Jika angsuran 1:
ambil data dari database: SELECT jumlah_bayar FROM uang_pangkal WHERE nama_angsuran = angsuran_1
Setelah itu kurangkan 400 dengan hasil tersebut.
Untuk angsuran 2:
ambil data dari database: SELECT jumlah_bayar FROM uang_pangkal WHERE nama_angsuran = angsuran_1 OR nama_angsuran = angsuran_2
Setelah itu kurangkan 400 dengan hasil tersebut.
mas saya mau nanya dong,, kalo mau menjumlahakan data total dari dua tabel yang berbeda gimnana ya
Ada contoh tabelnya seperti apa mas? Jika penjumlahan untuk antar kolom, gunakan operator + mas
Assalamualaikum
Mas saya mau nanya tentang MySql misal saya mempunyai 2 tabel
disini saya mau menanyakan bagaimana menjumlahkan misal stok-terjual dan harga*terjual menjadi kolom baru dan bagaimana ketika dijumlahkan menjadi satu misal pensil Total 100.000 penghapus total 50.000 tanpa berurutan kebawah satu-satu terimakasih
Bisa dicontohkan bentuk tabel outputnya seperti apa mas?
selamat malam mas agus, sya ingin bertanya, apakah query ini bisa di terapkan dalam bahasa pemrograman java ?
Bisa mas, untuk query sql bisa di terapkan di bahasa pemrograman apa saja, bedanya jika diterapkan di database berbeda, misal oracle, querynya mungkin berbeda
Mas agus, misalkan saya punya 2 tabel :
create table barang(
id_barang(5) primary key,
nama_barang varchar(30) not null,
brand varchar(10) not null,
unit varchar(2) not null,
harga_satuan numeric(10,2) not null)
create table TransPenjualan_Detail(
id_barang varchar(5) not null,
qty numeric(10,2) not null,
subtotal numeric(10,2) select harga_satuanspeck,
foreign key (id_barang) references barang(id_barang))
Ketika saya input qty dan id_barang di tabel penjualan, subtotal otomatis terhitung dengan harga_satuan di tabel barang dan qty di tabel penjualan. Bagaimana caranya? Terimakasih
Bisa dari dua sisi mas, bisa dari sisi aplikasi dengan dua query atau hanya menggunakan SQL
Kalau via sql bagaimana caranya mas?
Bisa dicoba menggunakan trigger mas
slamat malam mas agus prabowo, saya mo nanya tentang trigger, permasalahan saya di sini setiap kali ada transaksi dari tabel input, data yang ditampilkan di tabel detail cuma ada 1 row saja,
bagai mana supaya stiap ada transaksi row bisa tampil kebawah dan menyimpan data lama di tabel
detail dan tidak berubah, yang berubah hanya data yang baru saja seperti contoh saya input nilai 1000 per transaksi screen shot http://prntscr.com/gdaqh6
Ketika ada transaksi dari tabel input, data masuk semua mas?
Itu triggernya sudah benar sepertinya, ketika ada data masuk, tabel lain diupdate
Untuk menampilkan datanya tinggal di select tabelnya mas kemudian di tampilkan ke user
selamat siang saya mau tanya,
jika ada kasus dimana ada dua jenis dalam satu tabel misalnya
A=Golongan 1 batas penerimaan 40
B=Golongan 2 batas penerimaan 45
jadi gimana fungsi ifnya jika seandainya yang daftar golongan 1 lebih dari 40 nanti yang ke 41nya masuk ke golongan 2?
makasih mohon bantuannya.
Itu dari sisi aplikasi mbak, misal php, dicek apakah jumlahnya sudah melebihi batas yang ditentukan
jika di php cara ceknya gimana tuh mas?
mohon pencerahan hehe
Klu pakai PHP, ketik daata di loop, di jumlahkan dengan array pada index yang sama mbak, misal:
foreach ($result as $val) {
$total[$val[‘id]] += $val[‘id’];
}
Selamat Idul Qurban Mas.
mohon maaf lahir batin
Mas Agus..
saya punya dua tabel..
1. transaksi
2. tbltransaksi…
ini SQLnya.
1. tabel transaksi
— phpMyAdmin SQL Dump
— version 2.11.1
— http://www.phpmyadmin.net
—
— Host: localhost
— Generation Time: Aug 31, 2017 at 01:58 PM
— Server version: 5.0.45
— PHP Version: 5.2.4
SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;
—
— Database: `grenzone`
—
— ——————————————————–
—
— Table structure for table `transaksi`
—
CREATE TABLE `transaksi` (
`id_transaksi` int(11) NOT NULL auto_increment,
`id_user` char(9) NOT NULL,
`kode_transaksi` char(8) NOT NULL,
`nama` varchar(30) NOT NULL,
`alamat` varchar(30) NOT NULL,
`no_telepon` varchar(30) NOT NULL,
`tanggal_masuk` varchar(100) NOT NULL,
`tanggal_selesai` varchar(100) NOT NULL,
`status` enum(‘AMBIL’,’BELUM’) NOT NULL default ‘BELUM’,
PRIMARY KEY (`id_transaksi`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=186 ;
—
— Dumping data for table `transaksi`
—
INSERT INTO `transaksi` (`id_transaksi`, `id_user`, `kode_transaksi`, `nama`, `alamat`, `no_telepon`, `tanggal_masuk`, `tanggal_selesai`, `status`) VALUES
(185, ‘195’, ‘00004’, ‘ana’, ‘depok’, ‘018210349389’, ’08/31/2017′, ’09/02/2017′, ‘BELUM’),
(184, ‘194’, ‘00003’, ‘ata’, ‘cipedak’, ‘018210349389’, ’08/31/2017′, ’08/31/2017′, ‘BELUM’),
(183, ‘194’, ‘00002’, ‘ata’, ‘cipedak’, ‘018210349389’, ’08/31/2017′, ’09/02/2017′, ‘BELUM’),
(182, ‘179’, ‘0001’, ‘jaen’, ‘cipedak’, ‘082259211091’, ’08/31/2017′, ’09/02/2017′, ‘BELUM’);
tabel tbltransaksi
— phpMyAdmin SQL Dump
— version 2.11.1
— http://www.phpmyadmin.net
—
— Host: localhost
— Generation Time: Aug 31, 2017 at 02:06 PM
— Server version: 5.0.45
— PHP Version: 5.2.4
SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;
—
— Database: `grenzone`
—
— ——————————————————–
—
— Table structure for table `tbltransaksi`
—
CREATE TABLE `tbltransaksi` (
`id_transaksi` int(11) NOT NULL auto_increment,
`kode_transaksi` char(8) NOT NULL,
`nama_barang` varchar(30) NOT NULL,
`hari` varchar(30) NOT NULL,
`harga` int(11) NOT NULL,
`jumlah` int(11) NOT NULL,
`total_harga` int(11) NOT NULL,
PRIMARY KEY (`id_transaksi`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=159 ;
—
— Dumping data for table `tbltransaksi`
—
INSERT INTO `tbltransaksi` (`id_transaksi`, `kode_transaksi`, `nama_barang`, `hari`, `harga`, `jumlah`, `total_harga`) VALUES
(153, ‘0001’, ‘Boneka Kecil’, ‘5’, 10000, 4, 40000),
(154, ‘00002’, ‘Boneka Kecil’, ‘5’, 10000, 9, 90000),
(155, ‘00002’, ‘REGULER CUCI SETRIKA I’, ‘1’, 9000, 4, 36000),
(156, ‘00002’, ‘REGULER CUCI SETRIKA I’, ‘1’, 9000, 2, 18000),
(157, ‘00003’, ‘REGULER CUCI SETRIKA II’, ‘2’, 8000, 4, 32000),
(158, ‘00004’, ‘REGULER CUCI SETRIKA II’, ‘2’, 8000, 6, 48000);
Bagaimana agar bisa menampilakn total harga dari tbltransaksi berdasarkan kode_transaksi dari kedua tabel tsb.
ini scriipt saya
SELECT
transaksi.kode_transaksi,
transaksi.nama,
transaksi.alamat,
transaksi.no_telepon,
transaksi.status,
SUM(tbltransaksi.total_harga ) AS total_harga
FROM transaksi LEFT JOIN tbltransaksi
ON tbltransaksi.kode_transaksi
GROUP BY transaksi.kode_transaksi
hasilnya tdk sesuai.
mohon bantuannya..
terima kasih.
Selamat Idul Qurban Mas 🙂
Oiya bisa dicontohkan bentuk tabel yang diinginkan seperti apa mas?
bgini yang saya inginkan mas.
coba yang bagian ON dilengkapi mas…
ON tbltransaksi.kode_transaksi = transaksi.kode_transaksi
dan juga kalau mau tampilkan jumlah total_bayar dari kedua tabel di atas berdasarkan status =’BELUM’ dari tabel transaksi bmn ya??
terima kasih 🙂
Tinggal ditambahkan pada klausa WHERE mas, misal:
SELECT…
FROM…
LEFT JOIN…
WHERE status = “BELUM”
GROUP BY…
soal no 1 semalam saya sdh mendapat Ilham.. heheh
kalau no 2 makasih banyak mas..
Panjang Umur ya.
amin.
Amin sama sama mas…. 🙂
maaf mas mau nanya kalau kita ingin mencari total dari tabel yang sudah dimanipulasi itu gimana ya, ini query manipulasi nya mas :
round(count(hg) * hgb), 1)
tolong respon nya mas
Bisa dari sisi aplikasi atau dari database, untuk dari database, bisa pakai subquery mas
Mastah, untuk menjumlahkan dari 2 dari hasil penjumlahan, querynya bagaimana?
misal, 1. a + b = c
2. d + e = f
3. c + f = ?
datanya dalam 1 tabel semua mastah.
makasih..
Salam…
harus mengulang lagi mas, berarti yang ketiga adalah a + b + c + f
bagaimana cara mebuat rangking per siswa untuk raport berdasarkan nilai akhir, misalnya:
nama: tes
kelas: 9-A
nisn:000007373
nilai: 73
ranking: 5
Bentuk tabel awalnya seperti apa mas?
bagaimana cara membuat ranking di raport per siswa berdasarkan nilai akhir, misal:
nama : tes
kelas : 9-A
nisn : 0006736476374
nilai : 75
ranking : 14
Bentuk awal tabel databasenya seperti apa pak?
seperti yang saya contohkan pa, cuma ranking saja yang tidak ada di database, sudah bingung saya pak mengatasinya.
Maksudnya tabel di database nya seperti apa pak terus output yang diinginkan seperti apa pak?
tabel database terdiri dari
nama_siswa
kelas
nilai_akhir
semester
tahun_ajaran
nilai akhir hasil penjumlahan dari beberapa nilai inputan
hasil output yang diinginkan seperti yang saya contohkan cuma satu siswa saja bukan secara berkelompok pa.
Kalau tidak ada contoh datanya saya agak kesulitan mas:
coba SELECT * FROM tabel ORDER BY nilai_akhir LIMIT 1, itu untuk rangking 1
Rangking 2 LIMIT 1,1
Rangking 3 LIMIT 2,1, dst…
kok punya saya masih error ya -_-
$siswa = $this->db->query(“SELECT k.id_kelas, k.nama_kelas, SUM(IF(s.j_kelamin = ‘L’,1,0)) AS jumlahlaki, SUM(IF(s.j_kelamin = ‘P’,1,0)) AS jumlahperempuan , SUM(IF(s.j_kelamin = ‘L’,1,0)) + SUM(IF(s.j_kelamin = ‘P’,1,0)) AS jumlahsiswa FROM kelas AS k
JOIN siswa_kelas AS sk ON k.id_kelas = sk.id_kelas
JOIN siswa AS s ON s.NISN = sk.NISN
JOIN tahun_ajaran AS ta ON ta.id_tahun_ajaran = sk.id_tahun_ajaran
WHERE sk.id_tahun_ajaran = $tahunajar
GROUP BY id_kelas
UNION ALL
SELECT “TOTAL”,
SUM(IF(s.j_kelamin = ‘L’,1,0)) AS jumlahlaki,
SUM(IF(s.j_kelamin = ‘P’,1,0)) AS jumlahperempuan ,
SUM(IF(s.j_kelamin = ‘L’,1,0)) + SUM(IF(s.j_kelamin = ‘P’,1,0)) AS jumlahsiswa
FROM siswa;”);
Pesan errornya seperti apa mbak?
sepertinya penulisan cetak data di view nya mas
Oh.. berarti coba di cek script di viewny mbak…
Salam Mas Agus, Semoga selalu sehat ya.
amin.
mau nanya mas..
bagaimana menamilkan data pada tabel seperti ini?
ID Nama Paket Departure Arrival Total Seat Double Triple Quad Bayi
databasnya ini mas.
Dicoba di joinkan dl mas, ada di artikel JOIN Pada MySQL
selamat siang mas agus, mohon maaf mengganggu,
saya mau nanya nih.. bagaimana query untuk melakukan pengurangan pada sebuah field ?
Untuk pengurangan field bisa langsung mas, misal SELECT field1 – field2 AS total
Selamat pagi mas, newbi izin bertanya, setelah saya dapatkan query yang saya inginkan (sesuai tutor ini) bagaimanakah cara menampilkannya pada web PHP? adakah tutornya?, makasih.
Coba dicek di web ini mas: menampilkan data tabel mysql dengan php
Selamat pagi.
Saya memiliki tabel dengan nama: omset
dengan isi: no,nama,omzet_jan,omzet_feb,omzet_mar
Saya ingin menjumlahkan data omset ketiga bulan tersebut pada data yang sebelumnya yang telah inputkan sebagaimana biasa. Namun, saya mengalami kegagalan. Bisakah anda untuk membantu?
Coba mas: pertama ambil ketiga data tersebut, misal: SELECT omzet_jan + omzet_feb + omzet_mar AS omzet FROM table
setelah itu jumlahkan data tersebut dengan data yang diinputkan
mas agus…
saya mau nanya nih…
kalau misal data penjualan dalam satu bulan, katakan bulan januari 2018 ada 15 record, kalau saya panggil untuk ditampilkan dalam tabel kan cuma ada 15 data dengan tanggal transaksinya.
yang ingin saya tanyakan adalah
saya ingin menampilkan tabelnya lengkap dari tanggal 01 s/d 31 (akhir bulan), tanggal yang tidak ada data penjualan tetap tampil tanggalnya di kolom tabel namun jmlh penjualan 0.
terimaksaih sebelumnya.
Coba ambil data seperti biasa menggunakan query dan hasilnya disimpan ke dalam array, kemudian untuk tanggalnya ditampilkan semua dengan php, selanjutnya di cek di array tersebut apakah di tanggal tersebut ada datanya, misal:
Salam Pak
format perintah MySQL dan SQL MsAccess apakah sama??
Kalau struktur nya sama mas itu kenapa disebut structured query language,cuman fungsi dan klausa yang digunakan ada yang berbeda
mas agus saya mau tanya mas.. kalau mau menampilkan jumlah barang tapi jika ada barang yang sama maka jumlahnya saja yang bertambah. misalkan tabelnya seperti ini mas
1. tabel_detail_masuk, isi querynya sbb :
SELECT kode_detail, no_brg_masuk, kode_brg, jml_brg, hrg, subtotal FROM tabel_detail_masuk
2. tabel barang
SELECT kode_brg, nm_brg FROM tabel_barang
nah setelah itu saya mau buat transaksinya
misalkan pada tabel detail akan ditampilkan seperti ini :
NO. Kode Barang Nama Barang Jumlah Brg harga Brg
1. BR001 Aqua 2 2000
2. BR001 Aqua 2 2000
nah ketika saya mau menambahkan barang yang sama, cukup jumlah barangnya saja yang bertambah tanpa harus menampilkan kode barang dan nama barang lagi.. terimakasih mas
Itu tinggal di JOIN kan saja mas
kalau kaya gini gimana
day|count
01-01-2018|10
02-01-2018|10
03-01-2018|10
day|sum
01-01-2018|10
02-01-2018|20
03-01-2018|30
querynya apa ya
Dicoba diselesaikan pakai pemrograman mas…
Selamat pagi pak
saya ingin bertanya,saya membuat table di mysql
saya memiliki table_produksi
tabel_sepeda
bagaimana caranya agar jumlah_produksi sepeda yang ada di table produksi otomatis SUM dan masuk ke jumlah produksi dari tabel_sepeda??
terimakasih
Maksudnya di update otomatis mas?
Atau secara periodik datanya terupdate? kalau secara periodik harus menggunakan schedulle task atau cron job
mas mau tanya, saya mau pakai sum dengan lebih dari 1 parameter.
query di atas syntax error mas.
tapi kalau 1 parameter bisa mas
Mohon pencerahannya mas,
Makasih
Pesan error nya apa mbak?
Min kalau query penjumlahan antar tabel dan kolom gimana? misal
1. Tabel Mitra
total 80.0000
2. Tabel Jenis Barang
total 60.0000
3. Tabel Langganan
total 40.0000
Bagaimana Query mysql menjumlahakan isi tabel 80.000+60.000+40.000 = 180.000
Trimakasih
Coba menggunakan SUM mas:
Trimaksih mas Agus Prawoto Hadi Query nya berhasil , Ada yg mau di tanyakan lagi mas , jadi penjumlahan dari 3 tabel diatas di kurangi jumlah tabel pengeluaran misal, 80.000+60.000+40.000 = 180.000 – 80.000 = 100. 000
Untuk Query nya gimana mas ?? maaf saya pemula hehe
Coba seperti ini mas:
makasih mas query nya berhasil, sangat membantu…
Sama sama mas…
mas.. kalo kasus gini gimana, misalny ada tabel punya 3 kolom, kolom 1 & 2 bernilai integer, kolom 3 integer juga, tapi nilai nya adalah hasil perkalian dari kolom 1 dan 2. Bisa bantu mas? terimakasih
Apa maksudnya seperti ini mas: SELECT col1 * col2 AS col 3?
iya mas,, tapi kolom 3 bukan alias, tp query insert dari hasil select perkalian kolom 1 dan kolom 2,,
Bisa dicoba seperti ini mas: INSERT INTO table (col1, col2, col3) VALUES (3, 4, 3 * 4)
Atau jika data sudah ada, bisa menggunakan statemen UPDATE, misal: UPDATE tabel SET col3 = col1 * col2
terimakasih mas agus querynya sangat membantu
Sama sama mas…
———————–
| Data |Total |
———————–
| 6 | 0 |
| 3 | 0 |
| 3 | 0 |
———————-
Mas, saya punya kasus begini.
saya mau setiap nilai Data “dibagi” dgn JUMLAH TOTAL DATA itu sendiri dan dimasukan kedalam kolom sebelahnya. saya sudah mencoba Data yg pertama dgn : SELECT (TUNDA) / SUM(TUNDA) FROM table_data; (2)
Lalu untuk memasukan kedalam kolom sebelahnya gmna ya mas? dan untuk memilih 3/JUMLAH TOTAL DATA itu sendiri dan dimasukan ke kolom sebelahnya gimana juga ya mas?
Tinggal gunakan update mas:
@total := SELECT SUM(TUNDA) FROM table;
UPDATE tabel SET total = TUNDA / @total
atau cukup:
UPDATE tabel SET total = TUNDA / (SELECT SUM(TUNDA) FROM table);
mas kalo mau buat token masuk berdasarkan kode jalur pendaftaran gimane ye,
id|nama|pilihan|jalur_pendaftaran|kode_masuk
1|a|satu pilihan|REG-1|?
1|a|satu pilihan|REG-2|?
1|a|satu pilihan|REG-1|?
1|a|satu pilihan|REG-1|?
1|a|satu pilihan|REG-1|?
1|a|satu pilihan|REG-2|?
menjadi kaya gini gimane ya mas,
1|a|satu pilihan|REG-1|REG-10001
1|a|satu pilihan|REG-2|REG-10001
1|a|satu pilihan|REG-1|REG-10002
1|a|satu pilihan|REG-1|REG-10003
1|a|satu pilihan|REG-1|REG-10004
1|a|satu pilihan|REG-2|REG-10002
Saya lihat sekilas ngga ada polanya mas jadi agak susah
Saya masu tanya dong mas, kalau saya mau hitung total dalam 1 bulan selama 1 tahun bagaimana y queryny??
contoh :
-di bulan Januari 2018 ada 50 user yang di approved
-di bulan Februari 2018 ada 30 user yang di approved
nah saya mau dpt output seperti ini.
Januari 2018| Februari 2018| Total 2018
50 | 30 | 80
mohon pencerahannya..
Terima kasih..
Tabel awalnya seperti apa mas?
mas saya newbie
mau tanya kl kita punya kolom 1 dan 2
terus kita mau jumlahin kolom 1 + kolom 2 hasilnya di kolom 3
gimana ya?
sekalian sama perkalian kolom 1 dan kolom 2 ya mas
mohon pencerahannya
thanks
Tinggal di jumlahkan saja mas: SELECT kolom1 + kolom2 FROM table
untuk perkalian juga sama, misal: SELECT kolom1 * kolom2 FROM tabel
Selamat sore mas, saya mau tanya kalau kita mau ambil data dibawah ini dengan mengeliminasi id_akun dan pagu_akun yang sama tapi tidak mengeliminasi nominal dan sisa bagaimana ya caranya?
soalnya pada saat saya coba sum data tersebut tidak sesuai dikarenakan ada data yang double.
id id_akun pagu_akun nominal sisa
1 85 5640000 84000 5556000
2 90 5640000 362000 5278000
3 90 5640000 335000 5305000
4 90 5640000 242000 5398000
5 90 5640000 592000 5048000
6 96 54840000 22500000 32340000
7 93 108900000 21977900 86922100
8 93 108900000 21597360 87302640
9 93 108900000 11871760 97028240
10 95 18000000 3600000 14400000
11 95 18000000 2700000 15300000
12 95 18000000 1800000 16200000
13 95 18000000 3000000 15000000
14 97 5640000 233500 5406500
15 97 5640000 129500 5510500
16 97 5640000 285000 5355000
17 97 5640000 133000 5507000
18 98 78000000 6000000 72000000
19 98 78000000 6000000 72000000
20 99 2700000 300000 2400000
21 91 105639000 6750000 98889000
22 91 105639000 6750000 98889000
23 117 18000000 3000000 15000000
24 113 5640000 252000 5388000
NULL 1 20998000 0 20998000
mohon pencerahannya mas, terima kasih banyak
Maaf saya kurang paham dengan pertanyaan nya mas…
misal kita d suruh buat tabel movie(title,year,length,studioName)
dan kita sudah masukkan banyak data
cara menghitung total keseluruhan length bagaimana ya mas
saya pakai oracle
dan setelah it kita d suruh buat trigger yang scriptnya kalo jumlah length dari seluruh movies > 10000
maka trigger harus menampilkan “The Minutes is Exceeded”.
Tergantung bentuk length nya seperti apa mas, mungkin bisa di SUM(length)
mas misal gini :
A B C D
A 1 3 4 1
B 2 4 5 6
C 2 3 6 4
D 7 2 4 4
Cara menampilkan jumlah nilai tertinggi gmn mas ??
Bisa coba menggubakan fungsi max mas, misal SELECT MAX(B) FROM tabel
Mas tanya donk, kalau saya mau hitung total harga dari berdasarkan “no” bagaimana ya?
no | harga
1 | 500
2 | 300
1 | 200
3 | 200
2 | 100
3 | 200
1 | 200
3 | 400
Terima kasih
Coba mas SELECT SUM(harga) FROM tabel GROUP BY no
Selamat malam mas,.. sya mw tanyg..
Kalau mencari nilai max dan min sperti contoh diatas gmna ya mas..
Bisa menggunakan fungsi MIN() dan Max() mas
pak agus mau taya
saya puya 2 tabel
tabel 1
tnama
idn | nama
1 | dwi
2 | ita
3 | rama
4 | lia
5 | joni
tjual
idj | idn | produk
1 | 2 | a
2 | 2 | b
3 | 3 | c
4 | 3 | d
5 | 4 | a
6 | 4 | c
jadi yang saya mau tayakan query bagaimana, jika hasil query seperty bawah :
idn
2
3
4
atau muncul
jumlah idn
3
seoalah-olah mendata dan menghitung banyak nama yang ikut menjual
Belum paham maksudnya mas
idn
2
3
4
Kriterianya apa?
pak agus menginspirasi banget semangat terus pak agus
Terima kasih mbak…
mas izin bertanya. saya punya 1 tabel dengan data.
Tanggal | Mesin | Value
2019-06-24 10:20 |AA|5000
2019-06-24 10:20 |BB|6000
2019-06-24 10:21 |AA|6000
2019-06-24 10:21 |BB|7000
2019-06-25 14:05 |AA|7000
2019-06-25 14:05 |BB|8000
2019-06-25 14:06 |AA|8000
2019-06-25 14:06 |BB|9000
bagaimana ya mas query nya kalau saya ingin mengurangi nilai Value Max() – Value MIN() di tanggal yang sama. mohon pencerahannya mas. terimakasih
Itu harus pake query sendiri sendiri mas
SELECT (SELECT Max(value) FROM table WHERE tanggal = “2019-06-24”) – (SELECT Min(value) FROM table WHERE tanggal = “2019-06-24”) AS selisih
jika kode dan kasus di atas menggunakan php seperti apa ya mas scriptnya ? mohon Bantuannya mas !
Tinggal dimasukkan querynya di script PHP mas, misal:
$sql = ‘SCRIPT SQL’;
$query = mysqli_query($conn, $sql);
maaf mas tanya lagi, kalau script yang di atas tidak pakai input tanggal manual tapi menggunakan MAX() dari Tanggal seperti apa ya mas scriptnya. Mohon bantuannya
Maaf belum paham maksud pertanyaannya mas…
Saya pingin membuat tabel seperti ini, bagaimana caranya?, mohon pencerahannya, terima kasih.
TAMPILAN TABEL DI SITUS WEB (Sebelum di input)
+——+———–+ ———-+———-+———+————+
| NO | NAMA | TGL-1 | TGL-2 | JUMLAH | JUMLAH Y |
+——+———–+———–+———-+———+————+
| 1 | Dwi | | | | |
| 2 | Andi | | | | |
| 3 | Agus | | | | |
+——+———–+———–+———-+———+————+
INPUT DATABASE
+——+———–+ ———-+———-+———+————+
| NO | NAMA | TGL-1 | TGL-2 | JUMLAH | JUMLAH Y |
+——+———–+———–+———-+———+————+
| 1 | Dwi | input | input | auto x | y=1000-x |
| 2 | Andi | input | input | auto x | y=1000-x |
| 3 | Agus | input | input | auto x | y=1000-x |
+——+———–+———–+———-+———+————+
TAMPILAN TABEL DI SITUS WEB (Sesudah di input)
+——+———–+ ———-+———-+———+————+
| NO | NAMA | TGL-1 | TGL-2 | JUMLAH | JUMLAH Y |
+——+———–+———–+———-+———+————+
| 1 | Dwi | 500 | 100 | 600 | 400 |
| 2 | Andi | 500 | 500 | 1000 | 0 |
| 3 | Agus | 500 | 200 | 700 | 300 |
+——+———–+———–+———-+———+————+
======================================
untuk di upload
Saya pingin membuat tabel seperti ini, bagaimana caranya?, mohon pencerahannya, terima kasih.
TAMPILAN TABEL DI SITUS WEB (Sebelum di input)
+——–+————–+ ————-+————+————–+——————+
| NO | NAMA | TGL-1 | TGL-2 | JUMLAH | JUMLAH Y |
+——–+————–+————–+————+————–+——————+
| 1 | Dwi | | | | |
| 2 | Andi | | | | |
| 3 | Agus | | | – | |
+——-+—————+————–+————+————–+——————+
INPUT DATABASE
+——–+————–+ ————-+————+————–+——————+
| NO | NAMA | TGL-1 | TGL-2 | JUMLAH | JUMLAH Y |
+——–+————–+ ————-+————+————–+——————+
| 1 | Dwi | input | input | auto x | y=1000-x |
| 2 | Andi | input | input | auto x | y=1000-x |
| 3 | Agus | input | input | auto x | y=1000-x |
+——–+————–+ ————-+————+————–+——————+
TAMPILAN TABEL DI SITUS WEB (Sesudah di input)
+——–+————–+ ————-+————+————–+——————+
| NO | NAMA | TGL-1 | TGL-2 | JUMLAH | JUMLAH Y |
+——–+————–+ ————-+————+————–+——————+
| 1 | Dwi | 500 | 100 | 600 | 400 |
| 2 | Andi | 500 | 500 | 1000 | 0 |
| 3 | Agus | 500 | 200 | 700 | 300 |
+——–+————–+ ————-+————+————–+——————+
Bisa di rinci satu per satu mas pertanyaannya?
SELECT (SELECT Max(value) FROM table WHERE tanggal = “2019-06-24â€Â) – (SELECT Min(value) FROM table WHERE tanggal = “2019-06-24â€Â) AS selisih
yang ini script dari mas agus. tapi eror saat runing. terus bagaimana ya mas value dari “tanggal”nya pake MAX() semua. jadi intinya tuh saya ingin mengurangi data hari terakhir dan awal. data 24:00 – 00:01 di hari ini(MAX() dari tanggal atau tanggal terakhir). mhon pencerahannya mas.
Maaf belum pahan maksud pertanyaannya mas…
Baik mas.. akan saya rinci satu per satu pertanyaan saya, begini mas:
=========================================================================
Saya puya tabel kosong seperti tabel di bawah ini
dan saya ingin menginput tabel tersebut.
Contoh TABEL sudah ada (ini didalam url. halaman Home)
————————————————————————–
| No | Nama | klm1 | klm2 | klm3 | Jumlah |
————————————————————————-
| 01 | Dwi | | | | |
| 02 | Andi | | | | |
| 03 | Agus | | | | |
————————————————————————
Jumlah | | | | |
————————————————————————
Saya ingin menginput tabel diatas, pada kolom 1, 2, 3, dan sekaligus menjumlahkan,
terima kasih
Coba mas:
INSERT INTO TABLE(klm1, klm2, klm3, jumlah) VALUES (2000,1000,3000, 6000);
bagaimana caranya membuat sistem penjumlahan otomatis? misalnya kolom1 + kolom 2 + kolom3 + kolom4 + kolom5 = total kolom6 dan sekaligus penjumlahan row pada kolom6.
bagaimana cara membuat scrip nya, sebelumnya terima kasih…
Tidak bisa dilakukan dengan otomatis mas, harus manual: SELECR kolom1 + kolom2 + kolom3 + kolom4 + kolom5 AS total FROM table WITH ROLLUP
Mohon bantuan mas
Saya punya 3 tabel, .
1. Tabel pemasukan
-id_pemasukan
Id_periode
Jumlah_pemasukan
2. Tabel pengeluaran
Id_pengeluaran
Id_periode
Jumlah_pengeluaran
3.Tabel periode
Id_periode
Nama_periode
Sya mau dapatkan hasil jumlah pemasukan di kurangi jumlah pengeluaran berdasarkan periode nya….
Query nya gimana ya mas..
Mohon bantuannya
Contoh tabel hasilnya seperti apa mas?
Sama contoh tabel datanya
kalo hasilnya begini gimana ya ?
bintangnya juga harus ada angkanya
|****12|***444|*54643|**3155|
|667543|**8637|*****0|***369|
|**7516|***335|
Maksudny bintangnya ada angka apa mas…
ID Transaksi| Nama Barang | Tgl_Transaksi |Total | Pelanggan
—————————————————————————————————-
PM000987 |sampo | 01-08-2019 |10000 |Andi
PM000988 |Sampo , pasta gigi| 02-08-2019 |78000 |Aan
PM000989 |Sabun mandi | 03-08-2019 |45000 |Andi
PM000990 |daia |03-08-2019 |60000 |Andi
Id_pelanggan |pelanggan |record
———————————————————-
0098 |andi | 3
0099 |Aan | 1
Pak ,mau tanya gimana cara menampilkan jumlah record data pelanggan dari tabel transaksi . Dan di tampilkan di tabel pelanggan. mohon pencerahannya pak
Coba mbak:
SELECT COUNT(*) FROM (SELECT DISTINCT pelanggan FROM transaksi) AS transksi
cara kita menginput data ke field yang sudah terisi dan data yang kita input bukan mengupdate di dalam field trsebut namun dijumlahkan dengan data yang kita input tadi..? mohon penjelasannya
Satu satunya cara, mengambil data filed tersebut, kemudian menggabungkannya dengan data baru, kemudian update field tersebut dengan data yang baru tadi
Asslamualaikum mas mau nanya..
saya punya tabel rata_rata yang didalam nya ad no_peserta, id_kriteria dan rata_rata, dimana tabel ini sudah berelasi dengan tabel peserta dan kriteria.. untuk field rata_rata, saya mau hitung nilainya dengan rumus tertentu. ini potongan kodingnya :
$ratasqrt =mysql_query(“select * from kriteria”);
$tt =0;
while ($dada =mysql_fetch_array($ratasqrt)){
$tooo =mysql_query(“select * from rata_rata where id_kriteria=’$dada[id_kriteria]’ “);
$totalkua =0;
while($rt =mysql_fetch_array($tooo)){
$kuadrat =$rt[‘rata_rata’] * $rt[‘rata_rata’];
$totalkua =$totalkua+$kuadrat;
$hasil[$tt] =sqrt($totalkua);
}
$tt++;}
di tabel rata_rata ini terdapat nilai rata2 peserta laki-laki dan perempuan, saya mau pisahkan perhitungannya untuk laki2 dan perempuan dengan rumus perhitungan yang sama diatas, dan saya mau memanggil si jenis kelaminnya tapi di tabel rata_rata tdk punya field jenis_kelamin, hanya di tabel peserta letak field jenis_kelamin tersebut, tapi tabel peserta nya sudah berelasi dengan tabel rata_rata ini, gimana caranya mas.. mohon bantuannya? bdw fokus di syntax yang ini aja kan mas?
$tooo =mysql_query(“select * from rata_rata where id_kriteria=’$dada[id_kriteria]’ “);
note : untuk index tabel rata_rata yaitu, no_peserta dan id_kriteria, keduanya primary dari masing2 tabel peserta dan kriteria, namun tdk ada primary untuk tabel rata_rata ini…
1. TABEL TRANSAKSI =isinya tagihan pembayaran perbulan selama 1 tahun
noinduk | tahun|bulan | SPP | konsumsi | kegiatan
—————————————————————–
1001 | 2019 |1|10000|10000|200000
1001 | 2019 |2|10000|10000|200000
1001 | 2019 |3|10000|10000|200000
2. TABEL BEASISWA = isinya potongan pembayaran perbulan selama 1 tahun
noinduk | tahun|bulan | SPP | konsumsi|kegiatan
—————————————————————–
1001 | 2019 |1|5000|0|0
1001 | 2019 |2|5000|0|0
1001 | 2019 |3|5000|0|0
3. TABEL REKAPTRANSAKSI = isinya rekap pembayaran tagihan yang sudah dibayarkan
noinduk | tahun|bulan | SPP | konsumsi |kegiatan
—————————————————————–
1001 | 2019 |1|5000|10000|0
1001 | 2019 |2|5000|10000|0
1001 | 2019 |3|5000|10000|0
cara menampilkan tagihan perbulan yang belum terbayar setiap siswa bagaimana? perkiraan seperti ini kira2 sqlnya bagaimana ya pak? terimakasih.
SUM(transaksi)-SUM(rekaptransaksi)-SUM(beasiswa) group by Noinduk, tahun, bulan
Sudah bisa belum mas?
kd_barang nm_barang hrg_barang
br001 sabun 5000
br002 detergen 15000
br003 beras 100000
br004 pasta gigi 5000
br005 gas lpg 3kg 25000
br006 air mineral 1,5 ltr 5000
br007 air mineral galoon 25000
br008 Rokok 25000
kd_cust nm_cust status
cs01 Dedi Member
cs02 Armand Guest
cs03 Ardi Member
cs04 Mana Guest
cs05 Okky Member
cs06 Jono Guest
cs07 Alief Member
cs08 Danang Guest
cs09 Fitrian Member
cs10 Sabdo Guest
cs11 Lani Member
kd_trx tgl kd_cus kd_barang qty
trx001 11/21/2019 cs01 br001 1
trx001 11/21/2019 cs01 br003 5
trx001 11/21/2019 cs01 br007 5
trx001 11/21/2019 cs01 br008 2
trx001 11/21/2019 cs01 br002 2
trx002 11/21/2019 cs06 br007 1
trx002 11/21/2019 cs06 br008 1
trx002 11/21/2019 cs06 br002 1
trx003 11/21/2019 cs09 br008 10
trx004 11/21/2019 cs05 br008 2
trx004 11/21/2019 cs05 br006 1
Buatlah function untuk menghitung total bayar
Buatlah function diskon dengan ketentuan :
jika belanja > 50000 disc 5%
jika belanja > 100000 disc 10%
untuk output tampilkan harga yang dikalikan qty beli, total bayar, dan diskon
Tinggal dibuat saja mas, sesuai kriteria yang ada
Jika kasusnya seperti ini gimana ya?
Berada di satu tabel yg tabelnya bernama renja_pendapatan
Volume| Harga | Jumlah
5 | 50 | 250 |
cara mengalikan volume dan harganya gimana ya? totalnya yg jumlah
Apa maksudnya seperti ini?
SELECT volume * harga FROM tabel
om bagaimana jika sy punya 2 tabel:
Tabel 1:
id| id_ruang |Kode_ruang | tipe_pasien | total_TT | terpakai_male |terpakai_female |kosong_male|kosong_female|
1 | Mawar |0003 | 0011 | 4 | 2 |2 |0 |0 |
2 | Mawar |0004 | 0011 | 10 | 5 |2 |0 |3 |
3 | Mawar |0005 | 0011 | 20 | 9 |6 |1 |4 |
4 | Banteng |0003 | 0011 | 5 | 2 |2 |0 |1 |
5 | Banteng |0004 | 0011 | 12 | 6 |6 |0 |0 |
6 | Banteng |0005 | 0011 | 25 | 5 |10 |5 |0 |
Tabel 2:
id| Kode_ruang | tipe_pasien | total_TT | terpakai_male |terpakai_female |kosong_male|kosong_female|
1 | 0003 | 0011 | 0 | 0 |0 |0 |0 |
2 | 0004 | 0011 | 0 | 0 |0 |0 |0 |
3 | 0005 | 0011 | 0 | 0 |0 |0 |0 |
Bisakah Tabel 1 tersebut dari masing2 kode_ruang 0003, 0004 dan 0005 terjumlahkan isinya menjadi satu (SUM) di Tabel 2 dengan menggunakan trigger om? apa trigger yang bisa kite buat supaya TOTAL dari masing2 kolom tersebut dari total_TT, Terpakai_male, terpakai_female, kosong_male dan kosong_female terjumlahkan menjadi TOTAL di tabel ke dua tersebut.
Bisa mas, coba menggunakan SELECT SUM()
Selamat Sore Pak Agus Prawoto Hadi.
saya mohon bantuannya.
ini Pak..kodenya enggak mau menampilkan nilai maksimum yang seharusnya.
jadi hasil perhitungannya tidak valid..
terimakasih atas bantuannya sebelumnya Pak.
Maaf, kode apa ya pak?
mas bisa minta tolong
mau nanya mas,
saya punya 2 tabel, tabel SaldoAwal dan tabel Transaksi.
tbl SaldoAwal :
+————+——–+——–+——–+————+
| Tgl | KdAkun | Debet | Kredit | Keterangan |
+————+——–+——–+——–+————+
| 2020-06-01 | 1-111 | 0 | 100000 | MODAL |
| 2020-06-01 | 3-111 | 100000 | 0 | KAS |
| 2020-06-01 | 1-111 | 0 | 50000 | PENJUALAN |
| 2020-06-01 | 4-111 | 50000 | 0 | KAS |
+————+——–+——–+——–+————+
tbl Transaksi :
+————+——–+——–+——–+————–+
| Tgl | KdAkun | Debet | Kredit | Keterangan |
+————+——–+——–+——–+————–+
| 2020-06-12 | 1-111 | 10000 | 0 | BIAYA KIRIM |
| 2020-06-12 | 6-116 | 0 | 10000 | KAS |
| 2020-06-10 | 1-111 | 0 | 100000 | MODAL |
| 2020-06-10 | 3-111 | 100000 | 0 | KAS |
| 2020-06-12 | 1-111 | 0 | 50000 | PENJUALAN |
| 2020-06-12 | 4-111 | 50000 | 0 | KAS |
| 2020-06-10 | 1-119 | 0 | 150000 | UTANG DAGANG |
| 2020-06-10 | 2-113 | 150000 | 0 | PERSEDIAAN |
+————+——–+——–+——–+————–+
bagaimana menjumlahkan 2 tabel diatas supaya menjadi :
+————–+——–+——–+
| keterangan | Debet | Kredit |
+————–+——–+——–+
| BIAYA KIRIM | 10000 | 0 |
| KAS | 300000 | 10000 |
| MODAL | 0 | 200000 |
| PENJUALAN | 0 | 100000 |
| PERSEDIAAN | 150000 | 0 |
| UTANG DAGANG | 0 | 150000 |
+————–+——–+——–+
terima kasih sebelumnya..
Coba disum dengan menggabungkan kedua tabel, misal
Selamat sore mas agus, mau nanya cara menjumlahkan total 2 field dalam 1 tabel yg sama gimana caranya ya?
Coba menggunakan SELECT SUM(field1) + SUM(field2) FROM table mas…
assalamualaikum bg , mau bertanya kalok semisal kita punya tabel dari database laundry
nama tabel = Transaksi
No_order | No_Identitas |Tgl_Terima| Tgl_Ambil | Total_Berat | Diskon | Total_Bayar | Admin Id
kemudian kita pengen membuat suatu trigger dengan logika ketika total_berat keseluruhan dari orderan sudah mencapai nilai batas maksimu 100KG maka akan muncul alert error atau data rusak atau bisa dialihkan ke tanggal terima selanjutnya (h+1)
itu bagaimana solusinya bg terimakasih 🙂
SQL tidak didesain untuk memunculkan pesan error mas, itu bisa di buat di sisi pemrogramannya. Untuk trigger, jika tidak memenuhi kriteria, bisa di beriken nilai kembalian tertentu kemudian nilai tersebut dibaca di sisi pemrograman untuk di terjemahkan menjadi pesan error
mas , mau tanya mau mengambil data sebelum dari yang terbesar dalam satu colum ,
misal ada 1,2,3,4,5 , 2 ingin mengambul 1 = lalu di totalkan , nanti 3 meminta 2 , lalu di totalkan …
ini bagai mana ya mas ????
Ini sulit dilakukan menggunakan SQL mas, dan bisa jadi hasilnya ngga akurat. Bisa dicoba diolah menggunakan PHP
sebenarya saya sedang tidak mengkombinasikan dengan php , apakah boleh minta tolong untuk di jelaskan dengan bahasa php nya , nnti saya coba artikan
Coba ini mas…
selamat siang pak. disini saya ingin bertanya perihal database yang berkelanjutan/kontinyu perbulan. (maaf saya awam mengenai hal dunia komputer)
saya sudah mencoba membuat database di acces dan bisa dibilang sedikit berhasil, karena saya belum paham bagaimana caranya database tsb digunakan perbulan secara kontinyu.
contohnya:
* DATA PRODUK BULAN JANUARI:
NAMA PRODUK | JUMLAH STOK | PENGGUNAAN | STOK AKHIR |
– PRODUK A | 100 BUAH | 30 BUAH | 70 BUAH |
– PRODUK B….
– DST…..
* DATA PRODUK BULAN FEBRUARI:
NAMA PRODUK | JUMLAH STOK | PENGGUNAAN | STOK AKHIR |
– PRODUK A | = STOK AKHIR BULAN JANUARI YAITU 70 BUAH | = PEMAKAIAN BULAN FEBRUARI | = SISA STOK BULAN FEBRUARI |
– PRODUK B….
– DST…..
sebelumnya saya ucapkan terima kasih
Yang ditanyakan apa ya mas?
mas , bagaimana membuat kolom jumlah sama rata-rata , tapi setelah inputan satu minggu dihitung rata rata, kemudian lanjut 7 data lagi baru di jumlahkan
Maaf, saya kurang paham dengan pertanyaan nya mas
Mas, kalau mau menjumlahkan total nilai berdasarkan taggal yang di filter, gimana kira2 ya mass,
saya sudah coba query seperti ini malah yang dijumlahkan total semua nilai, bukan yang difilter,
query nya ini :
\DB::select(“SELECT SUM(masuk) as tot_masuk1 FROM tb_kas_mesjid WHERE tgl_masuk > ‘2005-06-01’ AND tgl_masuk < '2030-01-01' ");
Terimakasih mas sebelumnya.
Itu sebenarnya sudah benar query nya mas
izin bertanya mas agus, saya memiliki query sebagai berikut:
SELECT dus.nama_unit_kerja as nama_unit,
count(if(mp.gol_id=11,mp.nip,0)) as ‘I/a’,
count(if(mp.gol_id=12,mp.nip,0)) as ‘I/b’,
count(if(mp.gol_id=13,mp.nip,0)) as ‘I/c’,
count(if(mp.nip,mp.gol_id=14,0)) as ‘I/d’
from master_pegawai mp
left join daf_unit_staf dus on dus.unit_staf_id = mp.unit_staf_id
where mp.aktif_id =’1′ and (mp.statpeg_id=’1′ or mp.statpeg_id=’2′ or mp.statpeg_id=’3′)
and dus.nama_unit_kerja !=â€Â
GROUP BY nama_unit_kerja
hasil yang saya inginkan adalah menghitung jumlah pegawai dalam golongan tertentu pada tiap2 unitkerja tertenu.
namun dengan query tersebut, saya mendapatkan hasil di tiap golongan pada tiap unit kerjanya 1.
tebel tersebut dimaksudkan untuk melihat statistik dimana didalam unit kerja terdapat sejumlah pegawai dalam golongan tertentu.
mohon pencerahannya
SELECT a.nama_akunkgn,a.lap_keuangan,
b.kode_subkgn,b.nama_subkgn,b.pos_saldo,
SUM(IF(d.tgl_jurnalkgn BETWEEN ‘2019-01-01’ AND ‘2019-12-31’, c.jumlah_debet, NULL)),
SUM(IF(d.tgl_jurnalkgn BETWEEN ‘2019-01-01’ AND ‘2019-12-31’, c.jumlah_kredit, NULL))
FROM tbl_akunkgn a
LEFT JOIN tbl_subkgn b
ON a.id_akunkgn=b.id_akunkgn
LEFT JOIN tbl_bbkgn c
ON b.id_subkgn=c.id_subkgn
LEFT JOIN tbl_jurnalkgn d
ON c.id_jurnalkgn=d.id_jurnalkgn
GROUP BY b.id_subkgn
data saya ada 30 ribu,, tp kok reloadnya bisa lama ya, bisa di optimasi ga pak, terimksh sebelumnya
Coba menggunakan index mas, bisa coba di googling index pada mysql
trimakasih mas sangat membantu
Sama sama mas…
mas permisi saya mau tanya jika saya cuman ingin menampilkan transaksi dari id pelanggan 1, dan jumlah harga total dari pelanggan id 1 bagaimana ya ?
Bisa coba ditambahkan filter WHERE mas:
WHERE id_pelanggan = 1
mas bagaimana jika nilai yang dijumlah mempunya nilai 2 dibelakang koma,
misalkan
1000,34
5000,50
hasil 6000,84
Sama saja mas, tinggal di sum saja
ijin bertanya..
bagaimana cara menjumlahkan data yg sudah di filter?
ini codingan saya
$countmesin1 = DB::table(‘t_prod_knit_202206’)
->select(DB::raw(‘COUNT(Mesin), Mesin’))
->where(‘CShift’, ‘=’, ‘1’)
->groupBy(‘Mesin’)
->get();
$shift1 = DB::table(‘t_prod_knit_202206’)
->select(DB::raw(‘SUM(Kuantum) as Tprod1 , COUNT($countmesin1) as Tmesin1,TglDopping’))
->where(‘CShift’, ‘=’, ‘1’)
->groupBy(‘TglDopping’)
->get();
Di hitungnya menggunakan loop mas, misal:
Izin bertanya Mas Agus
Saya punya data sbb:
Departments
Berisi data master department
ID Name
1 Sales
2 Technology
Employees
Berisi data master employee, beserta informasi department dari setiap employee
ID Name DepartmentiD
1 Jonn 1
2 Jane 1
3 Jack 2
Cients
Berisi data master client, beserta informasi employee yang menangani client tsb
1D Name EmployeelD
1 PT ABC 1
2 PTBCD 1
3 PT.CDE 1
4 PT DEF 2
orders
Berisi data order dari setiap client
OrderiD Date ClientiD Total
1 2021.11.01 1 10.000.000
2 2021.11.01 1 1.000.000
3 2021-11-15 2 7.500.000
4 2021-11-16 1 3.500.000
5 2021-11-20 3 22,500.00
6 2021-11-23 1 6.750.000
7 2021-11-20 4 13.500.000
8 20211222 3 8.900.000
9 2021.12.09 2 12.750.000
10 20211210 4 23,900.00
11 20211201 3 35.000.000
12 2021-1208 4 1.000.000
13 2021.12.09 1 3.750.000
14 20211223 1 5.500.000
15 2022-01-22 2 9.500.000
16 2021.11.27 2 2.700.000
PERTANYAANNYA
1. query untuk mendapatkan client dengan nilai total penjualan paling rendah dan outputnya seperti apa
2 query untuk mendapatkan client-client dengan nilai total penjualan tertinggi di setiap bulan output seperti apa
3. query untuk mendapatkan top employee (employee yang memiliki client dengan total penjualan tertinggi) selama tahun 2021. Nilai total penjualan yang dihasilkan employee tsb, harus disertakan dalam hasil query.
Terima Kasih atas bantuannya
Untuk client dengan penjualan terendah atau tertinggi perbulan bisa menggunakan sum kemudian di group berdasarkan bulan misal:
Mas saya ingin tampilan nya seperti ini
1. A (header 1) -> jumah header 2
2. A.1 (header 2) -> jumlah header 3
3. A.1.a (header 3) -> jumlah detail
4 A.1.a.detail (detail) -> harga
Mohon solusi nya mas, untuk penjumlahan dan rancangan database nya..