Postingan lainnya
Periode 2 tanggal
Dear Admin,
Mohon bantuan nya ni. Jika saya mau menampilkan 2 periode tanggal bagaimana ya? Periode 1 > tanggal 01-10-2017 s/d 12-10-2017 Periode 2 > tanggal 13-10-2017 s/d 30-10-2017
Terima kasih dan mohon bantuan nya master-master.
9 Jawaban:
Pake sql between, caranya bisa liat disini https://www.w3schools.com/sql/sql_between.asp. Terus untuk menjabarkan dua kondisi sekaligus pake where Or, jangan And. Itu semacam multiple between. Contohnya sih :
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 15
OR Price BETWEEN 15 AND 20;
@beckbella,
Terima kasih atas masukkan nya. Saya memiliki database dengan nama table pooling. Terdapat field tanggal, price. Yg ingin di tampilkan data nya seperti di bawah ini. 1. Jika tanggal 1 - 22 yang price nya : 0-100 * 2, 100-1000 * 3 dan 1000 - 2000 * 4. 2. Jika tanggal 22 - 31 yang price nya : 0-100 * 9, 100-1000 * 6 dan 1000 - 2000 * 8.
Untuk seperti ini bagaimana ya om @beckbella dan rekan-rekan php lain nya. Mohon bantuan nya ya.
Result 2 column
SELECT * FROM
(SELECT (data) as data_periode_1 from table where date between '2017-10-01' AND '2017-10-12') A,
(SELECT (data) as data_periode_2 from table where date between '2017-10-13' AND '2017-10-30') B ;
//Note : jika data lebih dr 1 maka (data) as data_periode_1, (price) as price_periode_1, .....
Jawaban Terpilih
Coba cek lagi disini : https://www.w3schools.com/sql/func_mysql_case.asp Kalo kondisinya kayak yg agan jabarkan cukup pake Select Case aja (caranyanya sama aja kayak Switch Case, tapi yg ini di dalam Query).
Kalo dijabarin sih kayak gini contohnya, silahkan disesuaikan sama tablenya gan :
SELECT OrderID, Quantity,
CASE
WHEN OrderID >= 10248 AND OrderID <= 10250
THEN
CASE
WHEN Quantity > 30 THEN Quantity * 2
WHEN Quantity = 30 THEN Quantity * 3
ELSE "The quantity is something else"
END
WHEN OrderID > 10250 AND OrderID <= 10256
THEN
CASE
WHEN Quantity > 30 THEN Quantity * 4
WHEN Quantity = 30 THEN Quantity * 5
ELSE "The quantity is something else"
END
ELSE
"MELEBIHI 10256"
END
FROM OrderDetails;
Btw, sy mbak2 haha
@blackarch
Kalau untuk perkalihan nya akan di letakkan dimana ya??
Terima kasih atas respon nya.
om maaf mba @blackarch. Terima kasih atas bantuan nya ya
Dear mba @@blackarch
Saya coba sql di phpmyadmin berjalan dengan baik seperti di bawah ini.
SELECT a.periode, a.pt, a.balance, b.periode, b.price, CASE WHEN b.periode>= '2017-07-01' AND b.periode<= '2017-07-20' THEN CASE WHEN b.price >= 0 && b.price < 2500000 THEN b.price*2 WHEN b.price > 2500000 && b.price < 6000000 THEN b.price*3 WHEN b.price > 6000000 && b.price < 100000000 THEN b.price*4 ELSE "The quantity is something else" END WHEN b.periode>= '2017-07-21' AND b.periode<= '2017-07-30' THEN CASE WHEN b.price >= 0 && b.price < 2500000 THEN b.price*5 WHEN b.price > 2500000 && b.price < 6000000 THEN b.price*6 WHEN b.price > 6000000 && b.price < 100000000 THEN b.price*9 ELSE "The quantity is something else" END ELSE "MELEBIHI 10256" END FROM pooling_blc b, pooling a WHERE a.periode=b.periode
order by a.pt asc;
Lalu kalau saya terapin di php. Kenapa price nya tidak keluar ya? Mohon masukkan dan saran nya mba.
Saya memakai syntax php seperti di bawah ini: ( tapi nilai price di atas tidak keluar ) while($r=mysql_fetch_array($q)){ $dt2=$r["periode"]; $dt2=$func->change_date($dt2); $dt4=date('d-m-Y',strtotime($dt2));
?>
Terima kasih
@FeryR untuk ELSE nya kamu bisa kasih kondisi lain atau di kosongin jg gpp. lalu untuk kondisi casenya kamu tidak memberikan alias SELECT ...., (CASE ..... ) as new_price FROM .... btw pricenya kyknya jd 2 karena sudah ada SELECT b.price, kl bisa di bedain dgn alias kemudian kamu bisa tarik datanya berdasarkan namanya $price = $data['new_price'];
OK mba @blackarch saya coba dulu ya. Terima kasih atas saran nya dan bantuan nya selama ini. :)