Cara menggunakan count rating php

Melanjutkan artikel sebelumnya, pada kesempatan kali ini kita akan membahas cara untuk menghitung jumlah baris pada field [kolom] tertentu dengan kondisi tertentu pada MySQL.

Persiapan Data

Tabel dan hubungan antar tabel yang akan kita gunakan pada tutorial kali ini sama seperti pada artikel sebelumnya yaitu tampak seperti gambar berikut:

Download File SQL

File SQL diatas dapat digunakan untuk membuat semua tabel yang diperlukan beserta contoh datanya.

Menggunakan Fungsi COUNT IF

Seperti kita ketahui, untuk menghitung row [baris] pada tabel, kita menggunakan fungsi

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
46 yang otomatis akan menghitung jumlah row yang ada [row dengan nilai
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
47 tidak akan dihitung
].

Kriteria untuk menghitung baris dapat dilakukan dengan 2 cara yaitu dengan:

  • +-----------+----------+-----------+----------+
    | item_2016 | jml_2016 | item_2015 | jml_2015 |
    +-----------+----------+-----------+----------+
    |         8 | 16124000 |         5 |  9955000 |
    +-----------+----------+-----------+----------+
    48 yang akan menghitung semua row pada semua kolom. Hasilnya akan diambil dari kolom yang memiliki jumlah row paling banyak.
  • +-----------+----------+-----------+----------+
    | item_2016 | jml_2016 | item_2015 | jml_2015 |
    +-----------+----------+-----------+----------+
    |         8 | 16124000 |         5 |  9955000 |
    +-----------+----------+-----------+----------+
    49 yang akan menghitung row untuk kolom tertentu.

Sedangkan berdasarkan pengambilan datanya, fungsi

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
46 dapat ditulis dengan atau tanpa klausa 
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
51, yaitu:

  • +-----------+----------+-----------+----------+
    | item_2016 | jml_2016 | item_2015 | jml_2015 |
    +-----------+----------+-----------+----------+
    |         8 | 16124000 |         5 |  9955000 |
    +-----------+----------+-----------+----------+
    46 untuk menghitung semua row walaupun ada duplikasi data.
  • +-----------+----------+-----------+----------+
    | item_2016 | jml_2016 | item_2015 | jml_2015 |
    +-----------+----------+-----------+----------+
    |         8 | 16124000 |         5 |  9955000 |
    +-----------+----------+-----------+----------+
    53 untuk menghitung row yang unik [data yang sama tidak dihitung].

Melanjutkan artikel sebelumnya, sekarang kita akan menghitung jumlah item yang terjual berdasarkan tahun penjualan, query yang kita gunakan:

SELECT  COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan

Hasil yang kita peroleh:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+

Selanjutnya, jika kita ingin mengelompokkan hasil tersebut berdasarkan field atau kolom tertentu misal

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
54 maka field tersebut dapat kita kelompokkan menggunakan klausa
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
55. Contoh:

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan

Maka hasil yang akan kita peroleh:

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+

Terakhir, mari kita tampilkan informasi data pelanggan dengan cara menggabungkan tabel penjualan dan tabel pelanggan. Adapun query yang kita perlukan:

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan

Hasil:

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+

Penting diperhatikan bahwa antara

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
46 dengan tanda kurung buka tidak boleh ada spasi, misal:
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
57  jika tidak, maka query akan berhenti dan muncul pesan error: 
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
58

Lebih Lanjut

Fungsi

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
46 ini juga sering digunakan untuk membuat pivot table. Pembahasan mengenai cara membuat pivot table dibahas pada artikel:

  • Pivot Table Dengan MySQL – Panduan Lengkap
  • Pivot Table Dinamis Dengan MySQL
  • Pivot Table Dengan PHP dan MySQL

Demikian tutorial mengenai penggunaan fungsi

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
60, jika kasus yang sobat alami berbeda, silakan baca komentar dibawah artikel ini, mungkin solusinya ada disana.

Jika rekan rekan mengajukan pertanyaan seputar query, harap menyertakan contoh tabel data dengan jelas serta contoh hasil tabel yang diinginkan

Subscibe Now

Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com

Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.

agusph says:

Sebaiknya tidak menggunakan perintah

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
61 mas, karena perintah tersebut sudah deprecated dan akan di hilangkan di PHP versi 7, sebagai gantinya, coba biasakan menggunakan
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
62 atau
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
63.

Saya kurang paham dengan filed yang mas tulis di perintah mysql [source, inquiry] sepertinya tidak ada hubungannya dengan yang ditanyakan.

Untuk jawaban prtanyaan diatas, yang pertama dipahami bahwa jika menggunakan fungsi agregat seperti

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
64,
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
65,
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
66, dll, maka mysql akan otomatis melakukan group, sehingga kita tidak perlu menuliskan perintah
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
55, yang kedua gunakan tanda backtick [`] untuk penulisan tabel dan field yang namanya sama dengan nama perintah mysql, pertanyaan diatas menggunakan tabel order yang akan bentrok dengan fungsi MySQL yaitu ORDER BY sehingga perlu di beri backtick, untuk querynya bisa dicoba seperti ini:

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014

Jika ingin mencoba menggunakan PDO, bisa dicoba contoh berikut:

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]

Demikian mas, semoga dapat membantu….

agusph says:

Sepertinya tanggalnya ngga disimpen di database ya mas?

dengan asumsi sudah ada field tgl di tabel:
WHERE harus ditulis sebelum GROUP BY, sehingga coba diubah querynya menjadi:

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];

selanjutnya jika masih terdapat error, coba sebelum $result di echo querynya

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
68, coba perhatikan sudah betul belum. Sebagai tambahan, untuk mengambil data diantara dua periode, jika format data tanggal nya sudah y-m-d, tinggal langsung pakai between saja, contoh:

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;

jika format tanggal belum sama, bisa diubah dahulu dengan fungsi STR_TO_DATE, misal format tanggal masih dd/mm/yy menyambung contoh diatas, periode: 01/06/2015 s.d 01/09/2015, querynya:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
0

Demikian, semoga dapat membantu

agusph says:

Untuk membuat seperti itu bisa menggunakan LIMIT mas, ambil dua baris terakhir, misal contoh tabel:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
1

SQL nya:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
2

Pada LIMIT, kita harus mengetahui jumlah seluruh rows di kurangi-2, contoh diatas jumlah rows 5-2 = 3. Karena pada LIMIT tidak bisa menggunakan variabel misal:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
69 maka agak merepotkan, jika ID nya auto increment, SQL nya dapat diubah menjadi:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
3

Selain itu jika ID nya sudah diketahui, dapat menggunakan query berikut:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
4

Menurut saya sepertinya lebih reliable jika menggunakan ID sebagai penandanya, bukan rows, karena rows bisa berubah – ubah.
Salam..

agusph says:

Misal seperti ini mas:
t_barang:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
5
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
6

Bisa menggunakan query berikut:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
7

Hasil:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
8

Kita perlu buat temporary tabel mas, untuk membuat resume dari tabel t_penjualan kemudian di joinkan ke tabel t_barang.
Semoga membantu

Salam...

agusph says:

Kalau saya lihat, datanya ngga ada yang unik mas, sehingga jika digabungkan, rownya akan dobel2, dan karena fungsi

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
46 digunakan untuk menghitung jumlah row, maka hasilnya akan tidak pas, untuk itu bisa dicoba dengan menggabungkan semua tabel menjadi temporary tabel dengan tambahan field untuk identitas masing-masing tabel, kemudian jalankan fungsi
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
46. Query penggabungannya:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
9

Hasil penggabungan:

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
0

Selanjutnya buat query

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
46 nya:

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
1

Hasil:

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
2

Semoga membantu…
Salam.

rizki says:

makasih mas sudah di respon maaf baru bales….

tetep ga muncul mas knapa yah maklum newbie…hikshiks
jadi gini maksudnya mas misalkan saya punya 1 tabel master 3 tabel transaksi
trus tabel transaksi saya pisahkan jadi 3 soalnya setiap transaksi nomorya beda2…
nah saya jadi bingung sendiri pas mau buat laporan rekap ke pdf perbulan berdasarkan tanggal transaksi
karna tabel transaksinya terpisah….tadinya rencana saya mau buat satu tabel transaksi kosong yg
fieldya sama seperti 3 tabel transaksi untuk menampung/menjadikan 1…
3 tabel transaksi jadi pada saat ada poroses transaksi dari 3 tabel tersebut otomatis tersimpan
ke tabel penampungan tersebut biar gampang rekapnya taunya malah makin bingung sendiri gak karuan…hikshiks

skali lagi maklum newbie baru belajar mohon bantuan dan bimbinganya mas….makasih

ini contohya mas….

Master
id_master
nama
jenis
stok

transaksi_jenis_a
id_transaksi_a
id_master
tanggal_transaksi_a
jenis
jumlah

transaksi_jenis_b
id_transaksi_b
id_master
tanggal_transaksi_b
jenis
jumlah

transaksi_jenis_c
id_transaksi_c
id_master
tanggal_transaksi_c
jenis
jumlah

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
3

Norma Fitra Pusta Rahma says:

maaf mas mau tanya, klo misal mau ngitung seperti ini jumlah yang mendaftar nya, laki-laki nya, perempuangnya dll seperti tabel dibawah ini yang kosong, gmn ya mas?

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
4

tabel masternya seperti ini

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
5

app_registrasi 4 = diterima
pilihan_prodi 101 = manajemen
102 = akuntansi
103 = ekonomi islam.

saya sudah mencoba seperti ini tp gak bs, agak bingung memang.
$dtpendaftar=mysql_query[“select count[id_daftar] as num from ‘pendaftar’ where pilihan_prodi=’101′ and th_akademik=’1′ “];
$result=mysql_fetch_assoc[$dtpendaftar];
$jml=$result[‘num’];
echo”$jml”;

rangga says:

maaf mas numpang tanya, sebenarnya saya ingin buat tampilannya seperti ini mas :

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
6

dan tabelnya seperti ini :

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
7

kecamatan 1=tebet
kelurahan 2=bukit duri
rw 1=RW01
penyakit 4=campak
penyakit 3=diare
penyakit 2=dbd
status 1=penderita
status 2=meninggal

saya bingung menghitung jumlah dimasing masing kolomnya, itu bagaimana caranya mas. mohon bantuannya

agusph says:

Sebenernya logikanya hampir sama ketika kita menggunakan bahasa pemrograman mas seperti PHP, di MySQL,
untuk membuat resume per kolom, gunakan fungsi agregate mas seperti SUM, AVG, COUNT, dll. Jika kondisi yang disyaratkan hanya satu, kita bisa menggunkan IF, jika lebih dari satu menggunkan CASE. untuk solusi diatas, coba gunakan query ini mas:

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
8

Hasilnya:

SELECT id_pelanggan,  
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
GROUP BY id_pelanggan
9

hanif says:

mas mohon dibantu cara membuat querynya…
bingung cara menampilkan query untuk data bulan sebelummnya..

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
0

SAYA INGIN MANMPIKAN DATA SEPERTI DI BWAH INI
MISAL BULAN LALU JANURI, BULAN INI FEBRUARI

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
1

adhep says:

Maaf mas mau tanya, saya punya 3 tabel:

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
2

select mbarang.kd_brg,mbarang.nm_brg,sum[brgkeluar.jml_keluar]as keluar,
sum[brgmsk.jml_msk]as msk from mbarang inner join brgkeluar on mbarang.kd_brg=brg
keluar.kd_brg inner join brgmsk on brgmsk.kd_brg=brgkeluar.kd_brg group by mbara
ng.kd_brg,mbarang.nm_brg;

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
3

supaya hasilnya seperti dibawah ini gimana ya mas saya sudah coba tetapi tidak sesuai
jumlah keluar harusnya 15 bukan 30 dan jumlah msk harusnya 6 bukan 12 stok jg tidak muncul
trimaksih mohon bantuannya

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
4

Ryan says:

mas saya mau bertanya , cara mngitung count berdasarkan tanggal dengan berdasarkan 3 tabel gimana ya mas,
berikut bentuk tabelnya mas

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
5

Dan Hasilnya pengennya sperti ini mas :

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
6

Mohon Pencerahannya mas, terima kasih banyak mas

agusph says:

Yang penting untuk diperhatikan adalah ketika menggabungkan tabel, perhatikan apakah ada id yang akan kita jadikan referensi, jika YA maka kita lakukan join, jika TIDAK, maka kita gabungkan seperti biasa menggunakan union, untuk kasus diatas, kita gunakan union, kemudian kita buat identifikasi untuk masing masing tabel, dari data yang ada bisa menggunakan awalan dari id masing masing tabel [S, G, U], setelah itu kita kelompokkan dan hitung row untuk masing masing tabel, querynya sebagai berikut:

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
7

Hasil:

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
8

Demikian mas, semoga dapat membantu

omah says:

iya pak , terimakasih untuk penjelasannya ,, untuk menampilkan ini saya sudah berhasil untuk menggabungkan 3 tabel,,,

+--------------+-----------+----------+-----------+----------+
| id_pelanggan | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+-----------+----------+-----------+----------+
|            1 |         4 |  5225000 |         1 |  2450000 |
|            2 |         1 |  1500000 |         2 |  4000000 |
|            3 |         2 |  6499000 |         1 |  2730000 |
|            4 |         1 |  2900000 |         1 |   775000 |
+--------------+-----------+----------+-----------+----------+
9

tanya saya lagi…
bagaimana caranya untuk menampilkan data satu saja untuk NAMA_BAGIAN , apakah ini menggunakan perintah count ???

mohon pencerahannya pak,,,

najib says:

Assalamu alaikum, Mas. Mohon bantuannya sedikit nih mas, saya menghadapi kesulitan menentukan sintaksnya.

nama database: sipanter2
nama tabel: contoh

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
0

jadi, saya mau menampilkan id, nama, alamat, dan kode yang memiliki status ‘RUMAH KOSONG’ sebanyak 3 kali.
mohon bantuannya mas… 🙂

Erwin A says:

permisi mas, mau tanya nih, saya bikin aplikasi delphi, database mysql, ada menu rekap absensi nih mas, masalahnya memungkin ngak sql menghitung jumlah data yang sama di setiap baris bukan kolom, seperti menghitung jumlah hadir siswa, contoh tabelnya kayak dibawah nih mas,

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
1

nb :1,2,3,4… dst itu tanggal
K itu berarti hadir, A itu alpha

jd saya pengen hitung jumlah K dan A setiap baris bukan kolom
kira-kira hasil akhirnya seperti ini mas

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
2

tolong dibantu mas, terimakasih

roy says:

mohon bantuan mas agus, saya ingin menampilkan data yang tidak sama berdasarkan kataegori dan id_usernya,
database saya begini mas :

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
3

yang ingin saya tanyakan bagaimana cara menampilkan data table jenis berdasarkan kategori dan user yang tidak ada dalam tabel keahlian, contohnya begini mas :
anggap saja id_users = 1, maka data yang ingin tampil adalah

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
4

mohon bantuan untuk koding lengkap php nya ya mas :
soalnya masih belajar ini mas…
terimakasih sebelumnya

Silvia Dewi says:

Mas mohon bantuannya sudah 3 hari masih belum berhasil.
Penerimaan siswa baru berdasarkan kapasitas [daya tampung per jurusan].
Misal pendaftar ada 600 orang. Daya tampung jurusan Akuntansi 100 orang, Multimedia 100, Administrasi 80, hotel 50, pemasaran 50. Setiap pendaftar bisa memilih 2 pilihan jurusan. Siswa diterima bedasarkan nilai tertinggi dan prioritas diterima adalah pilihan pertama misal A memilih jurusan Ak dan hotel. jika nilainya 100 tertinggi maka masuk akuntansi, jika bukan 100 teringgi baru dilihat apa pilihan 2 nya masih kosong atau tidak.
Tabelnya :
S

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
5

shandy kassundra says:

mas saya mau tanya kalo mau menghitung total jumlah absensi setiap siswa baik itu[hadir,izin,alpa]

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
6

jadi saya tau jumlah absensi per siswa kira2 seperti ini
berdasarkan kelas yg ia ikuti,

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
7

agusph says:

Untuk membuat seperti itu, perlu diidentifikasi terlebih dahulu row yang dihasilkkan.
Dua baris pertama di group berdasarkan JK sedangkan 3 row berikutnya di group berdasarkan NILAI, disamping itu, di kolom Atribut terdapat dua kelompok nilai yang berbeda, yaitu JK dan NILAI, sehingga kita butuh dua query:

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
8

Hasil:

SELECT id_pelanggan, 
	nama, 
	COUNT[IF[ YEAR[tgl_byr] = 2016, jml_byr, NULL]] AS item_2016,
	SUM[IF[ YEAR[tgl_byr] = 2016, jml_byr, 0]] AS jml_2016,
        COUNT[IF[ YEAR[tgl_byr] = 2015, jml_byr, NULL]] AS item_2015,
        SUM[IF[ YEAR[tgl_byr] = 2015, jml_byr, 0]] AS jml_2015
FROM penjualan
LEFT JOIN pelanggan USING[id_pelanggan]
GROUP BY id_pelanggan
9

el says:

mas, saya ingin bertanya
saya punya tabel karyawan, absen, dan golongan.
pada tabel karyawan:

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
0

tabel absen :

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
1

tabel gaji golongan :

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
2

pertama absen diisi saat tambah pegawai
kemudian absen akan bertambah tiap hari [1hari = 1] tapi jika 1 hari pegawai
sakit/ijin/alpa akan dikurangi 1
contoh : jika dia menginputkan 20 hari, tetapi saat hari ke-20 memberi keterangan sakit
maka akan berkurang 19 hari
saya mau tanya bagaimana caranya menghitung gaji jika absen dan golongan yg diinputkan seperti contoh diatas
mohon bantuannya terima kasih.

djamal usman says:

mas gimana ya menampilkan data yang type data nya menggunakan ENUM,
jadi kasus saya ini ingin menampilkan absensi siswa dan menghitung jumlah kehadiran,sakit,izin, dan alpa, berdasarkan nis dan ruang kelas,aku menggunakan acount tapi gk bsa
ni tabel aku mas,tolong dong di buat pencerahan

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
3

djamal usman says:

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
4

ini isi ada di tabel absen nya mas

nah yang sya ingin ouput nya seperti ini mas

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
5

agusph says:

Itu berarti kita tidak berpedoman sama bulannya mas, tapi periodenya, karena kita menghitungnya berdasarkan urutan row nya, tidak nama bulannya, seperti yang digunakan pada mic. Excel

Untuk itu kita menggunakan urutan di periodenya:

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
6

Hasil:

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
7

Itu gambaran awalnya mas, coba dikembangkan lagi ya mas

adit says:

mas minta tolong bantuanya yaaa.
saya mau buat rekap laporan produksi barang berdasarkan id produksi

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
8

Output yang saya harapkan seprti ini . pengambilan data barang di ambil berdasarkan kode produksi

+--------------+---------+-----------+----------+-----------+----------+
| id_pelanggan | nama    | item_2016 | jml_2016 | item_2015 | jml_2015 |
+--------------+---------+-----------+----------+-----------+----------+
|            1 | Alfa    |         4 |  5225000 |         1 |  2450000 |
|            2 | Beta    |         1 |  1500000 |         2 |  4000000 |
|            3 | Charlie |         2 |  6499000 |         1 |  2730000 |
|            4 | Delta   |         1 |  2900000 |         1 |   775000 |
+--------------+---------+-----------+----------+-----------+----------+
9

Mohon Bantuanya ya mas…
terima kasih banyak

adit says:

mas minta tolong bantuanya ya.
*tbl barang_masuk

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
0

*tbl detail_barang_masuk

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
1

*tbl_barang

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
2

“jika saya melakukan rekap hanya dari tangal 01-1-2016 s/d 02-1-2016”
# tampilan yang saya harapkan seperti ini mas #

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
3

minta tolong bantuanya ya mas agus.
terima kasih banyak

agusph says:

Sepertinya tabelnya bisa di efisienkan lagi mas:
Tabel barang_masuk digabung dengan tabel detail_barang_masuk:
no | id_masuk |id_barang |jml_masuk | tgl_masuk | id_supplier
Dan perlu diperhatikan format tanggal yang disimpan di database sangat disarankan yyyy-mm-dd sehingga tidak menambah waktu untuk mengkonversi tanggal ke format sql

Untuk Querynya
Karena menggunakan batasan tanggal, kita cari detail_barang_masuk sesuai tanggal, maka kita gabungkan tabel barang_masuk dan detail_barang_masuk

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
4

Hasilnya:

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
5

Selanjutnya hitung jumlah barang masuk:

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
6

Hasil:

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
7

Agus Prawoto Hadi says:

Coba query ini mas:

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
8

Hasil

SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014
9

agusph says:

Querynya menghasilkan nilai kosong karena memang hasil count nya cuman 1 mbak, ketika dijalankan querynya

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
0

Hasilnya:

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
1

Jelas count[*] tidak ada yang nilainya lebih dari 2, sehingga hasilnya 0

Untuk menyelesaikan kasus diatas, setidaknya ada 2 logika yang harus dijalankan:
Pertama: kita cari no_trans yang muncul lebih dari 2 kali

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
2

Hasil:

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
3

Kedua: kita cari data yang no_transnya hasil dari query diatas

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
4

Hasil:

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
5

Hygen says:

selamat pagi mas,

mohon bantuanya :
Saya punya 4 buah tabel

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
6

mohon bantuan mas, ngima cara menghitung jumlah hari kerja jika terdapat 4 buah table seperti ini, agar hasil yang di dapat
NIP Jumlah hari kerja,,

terima kasih banyak atas bantunnya,
sukses selalu

Jaka Linglunk says:

Mas, mohon pencerahannya lagi

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
7

Mencari Query berapa banyak Gagal?

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
8

Hasilnya Error mas. sudah saya bolak balik, tetep ga berhasil.

Saya ingin mencari jumlah gagal, jumlah berhasil, dan jumlah total [gagal dan berhasil]
tanpa menghitung cell yang tak terisi.
Mohon bantuanya mas. terimakasih sebelumnya.

Agus Prawoto Hadi says:

Coba pakai query ini mas:

$db_host = 'localhost';
$db_port = '3306';
$db_name = 'test';
$db_user = 'root';
$db_pass = '';

try {
	$pdo = new PDO[ 'mysql:host='.$db_host.';port='.$db_port.';dbname='.$db_name , $db_user, $db_pass, array[PDO::MYSQL_ATTR_LOCAL_INFILE => 1] ];
	$pdo->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
}
catch[PDOException $e]
{
	$errMessage = 'Gagal terhubung dengan MySQL' . ' # MYSQL ERROR:' . $e->getMessage[];
	die[$errMessage];
}

$sql = 'SELECT COUNT[cs] AS jml_order FROM `order` WHERE cs="anton" AND tahun = 2014';
$stmt = $pdo->prepare[$sql];
$stmt->execute[];
$result = $stmt->fetchAll[PDO::FETCH_ASSOC];
print_r[$result];

// Result: Array [ [0] => Array [ [jml_order] => 2 ] ]
9

Hasil:

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
0

untuk di PHP nya tinggal disesuaikan mas

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
1

boy says:

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
2

Halo mas, saya ingin mengisi data jumlah siswa yg ad pd tabel_kelas sesuai dengan jumlah siswa dg kelas tertentu [ex : II A] yg ad pd tabel_siswa, mohon bantuannya mas, makasih.

Adi says:

saya mau tanya gan,,
misal tabel nya seperti ini

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
3
$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
4
$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
5

Adi says:

ralat gan,, udah bener gan, heheheee
terimakasih gan…

oh iya ada satu lagi nih gan,
kalau ingin menampilkan jumlah jadwal dalam masing2 jenis olahraga gimana ya gan..??
status tabel jadwal induk nya dan tabel olahraga cabang nya, itu sudah dihubungkan dengan foreign key pada kd_olahraga [tabel jadwal]

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
6

hasil yang di cari tabel nya seperti ini gan;

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
7

Agus Prawoto Hadi says:

Sama seperti sebelumnya mas, karena kita ingin menghitung jumlah baris, maka kita gunakan COUNT, nah karena kita ingin menghitung jumlah jadwal beserta namanya, maka kita bentuk terlebih dahulu tabel jadwal beserta namanya:

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
8

Hasil:

$where = '';
if [isset[$_GET['tgl_awal']] && $_GET['tgl_akhir']]
{
	$tgl_awal  = $_GET['tgl_awal']; //y-m-d
	$tgl_akhir = $_GET['tgl_akhir']; //y-m-d
	$where 	  .= " AND tgl between '" . $tgl_awal . "' AND '" . $tgl_akhir . "'";
}

$query = "SELECT source, COUNT[source]
			FROM inquiry 
			WHERE agent='fendy chang'" . $where . "
			GROUP BY source";

$result = mysql_query[$query] or die[mysql_error[]];
9

Selanjutnya kita hitung menggunakan COUNT

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
0

Hasil:

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
1

Metode tersebut bisa digunakan dengan syarat nama jenis_olahraga nya sama persis untuk laki laki dan perempuan, jika tidak perlu digunakan cara lain

Agus Prawoto Hadi says:

Itu hanya lngkah langkah nya saja mas, intiya memang query yang kedua, menggunakan subquery.

Intinya kita samakan dulu nama jenis olahraganya.
Jika kita hanya menggunakan tabel jadwal, jenis_olahraga nya tidak bisa digabungkan, misal Bulu Tangkis BTL dan BTP tidak bisa dihitung menjadi 2 ketika di group, karena namanya beda, untuk itu kita buat namanya sama dulu yaitu Bulu Tangkis dan Bulu Tangkis [dengan subquery] sehingga jika di gabungkan akan dihitung 2

Contoh Lain:
Kita samakan dulu namanya:

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
2

Hasil:

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
3

Selanjutnya kita group berdasarkan nama tersebut [Query jadi]:

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
4

Hasil:

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
5

orlin says:

mas minta tolong bantuanya ya.
saya ada tabel seperti ini mas
*tbl nama_perumahan

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
6

*tbl_rumah

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
7

# tampilan dinginkan seperti ini mas

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
8

terima kasih banyak mas

Agus Prawoto Hadi says:

Coba query ini mas:

SELECT *, COUNT[cs] AS jml_order
FROM `order` WHERE cs='Anton' AND tgl between '2015-06-01' and '2015-09-01' GROUP BY cs;
9

Hasil:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
00

Pada query diatas, saya menggunakan nama rumah untuk menggabungkan tbl_perumahan dan tbl_rumah, idealnya untuk join tabel menggunakan ID, mungkin bisa ditambahkan field id_perumahan pada tbl_nama_perumahan dan tbl_rumah, di tbl_perumahan sebagai primary key, di tbl_rumah sebagai foreign key

Supriy says:

Mas/Bang – Salam kenal
Minta bantuan pencerahannya
saya punya tabel dengan gambaran sederhana Sebagai berikut :

Nomor 1

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
01

Nomor 2
Data yg ingin sya tampilkan adalah sbb :

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
02

Nomor 3
Query yg sudah saya dapatkan sbb :
[“SELECT COUNT[IF[estate_code= ‘SSE’, asset_type, NULL]] AS jumlah_sse,
COUNT[IF[estate_code = ‘DOO’, asset_type, NULL]] AS jumlah_doo
FROM m_asset
GROUP BY asset_type”]
—————————————————————————————————————-
Hasil dari query yg sya buat tersebut sudah menghasilkan, akan tetapi belum bisa membedakan mana yang kondisinya Baik dan kondisi Rusak. sya sudah coba berlogika kesana-kemari tapi belum menemukan hasil dan setelah sya search GOOGLE, sya menemukan situs //jagowebdev.com
Pertanyaan : Bagaimana kira2 caranya supaya query tersebut bisa menghasilkan data sesuai dengan data yg ingin sya tampilkan pada Nomor 2
Mudah – mudahan gak bingung dengan pertanyaan yg sya ajukan… heheh… ribet muter2
Sekian, Terimakasih atas jawabannya
Salam dari Junior – Supriy

Agus Prawoto Hadi says:

Terima kasih atas kunjungannya mas. Querynya sudah hampir betul, yang perlu diperhatikan bahwa IF HANYA dapat digunakan untuk satu kondisi, karena kita akan membuat DUA kondisi, yaitu terkait estate_code dan asset_condition maka kita tidak bisa menggunakan IF, melainkan menggunakan CASE. Coba pakai query ini mas:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
03

Hasil:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
04

slamet riadi says:

mas bisa minta tolong?
saya sedang narik data dari mesin finger print hasil penarikan sudah saya olah menjadi strktur table seperti dibawah ini:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
05

yang ingin saya inginkan output melalui php seperti dibawah ini:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
06

satu masalah lagi data yang ketarik dari mesin absen mulai januari tahun 2016 hingga hari ini bagaimana caranya agar data yang ditampilkan hanya satu bulan yang lalu dari tanggal hari ini

mohon bantuannya sebelumnya terima kasih

Agus Prawoto Hadi says:

Untuk querynya bisa dicoba ini mas:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
07

Hasil:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
08

Pada query diatas, kita ambil jam masuk dari waktu minimal, untuk mengantisipasai jika ada yang absen masuk lebih dari satu kali, demikian juga dengan jam keluar.

Untuk waktu satu bulan dari sekarang, bisa menggunakan fungsi NOW[] – INTERVAL 1 MONTH

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
09

jani says:

selamat siang mas agus mau nanya saya punya masalah sebagai berikut :


berikut rumus yang saya buat di exsel

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
10

tampilan dan rumus ini saya mau ubah kedalam bentuk PHP
tapi hasilnya itu tidak sama persis dengan yang ada di exselan
bulan feb, mar ya itu muncul angka yang seharusnya dia itu “0”
bagai mana ya caranya biar sama dengan hasil yg ada di ekselnya dengan

terima kasih.

Agus Prawoto Hadi says:

Misal datanya di tabel forecast ya mas:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
11

Apa maksudnya seperti ini mas?

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
12

Hasil:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
13

hygen says:

slmt sore mas, saya sudah coba tapi kalau query diatas, menghasilkan data 2017-02-23 | 23:00:00 | 2017-02-28 | 07:00:21 |

maksudnya saya :

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
14

kalau menampilkan data seperti ini :

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
15

terima kasih atas bantunnya

Agus Prawoto Hadi says:

Itu melibatkan banyak kondisi mas, akan sulit menggunakan murni sql:
Misal: absen pulang dua kali, atau absen pulang di tanggan dan bulan berikutnya seperti ini

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
16

Akan lebih memudahkan jika ada flagnya, misal:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
17

Tapi saya rasa tidak mungkin menambahkan flag.

Tapi kalau mau coba pakai SQL bisa pakai SELF JOIN:

Contoh data:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
18
+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
19

Hasil:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
20

Tapi query diatas tidak dapat mengakomodir pegawai yang tidak absen salah satu, masuk atau pulang. Sebaiknya olah data dari sisi aplikasi

sadewa says:

jadi begini mas,. saya lagi buat data absensi dimana datanya itu harus direport dalam tiap minggu kapanpun admin ngecek datanya.. ini contoh datanya :

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
21

ketika user mengecek pada tanggal 8 maka data yang akan tampil hanya tanggal 8-2..

yang ingin dicetak contoh seprti ini mas:

di urutkan berdasarkan matakuliah yang telah dipilih mas

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
22

apakah hal tersebut memungkinkan mas?
apakah ada hal lain yang bisa mempermudah mas ? mohon bantuannya
apa saya bisa minta kontaknya mas?
terimakasih sebelumnya

fatan says:

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
23

menghitung jumlah kab berdasarkan id prov
menghitung jumlah kec berdasarkan id kab

querynya yang gimna mas?

igal says:

soalnya hampir sama dengan diatas, cma field jumlah kabupaten dan jumlah kecamatan dihilangkan
MariaDB [final_201611070]> select*from provinsi;

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
24

harman says:

mas mo tanya lagi ni mas…. soalnya gagal terus..
saya punya tabel seperti ini…

+-----------+----------+-----------+----------+
| item_2016 | jml_2016 | item_2015 | jml_2015 |
+-----------+----------+-----------+----------+
|         8 | 16124000 |         5 |  9955000 |
+-----------+----------+-----------+----------+
25

saya ingin menampilkan jadwal seperti pertanyaan saya diatas tapi berdasarkan kelas,, tapi setelah di tampilkan kode guru tidak muncul di di tabel jadwal ,, kira – kira gimna ya mas..??? mohon bantuannya..

wong fey hung says:

bukan cuma 10 database yang ditampilkan mas,,,
tapi 10 database di halaman 1, 10 database berikutnya di halaman2, dst,,, misal total database berjumlah 50database,,,
ini codingnya,,, :
btw yang sebelumnya kok codingnya kepotong ya,,, ?

Hasil Pencarian :

0]
{
echo “Ada $jml property yang cocok dengan pencarian $cariproperti di $wilayah”;

while[$row = mysqli_fetch_array[$db]]
{
echo “”;
echo “Username : $row[1]”;
echo “Nama Property : $row[3]”;
echo “Wilayah : $row[7]”;
echo “Kategori    : $row[8]”;
echo ”
$row[4]
“;
echo ”

“;
}
} else{
echo “Tidak ada property yang cocok dengan kata kunci $cariproperti di $wilayah”;
}
?>

Bài mới nhất

Chủ Đề