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.

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Diperbarui 6 tahun yang lalu

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;
avatar beckbella
@beckbella

68 Kontribusi 38 Poin

Dipost 6 tahun yang lalu

@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.

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

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, .....

avatar blackarch
@blackarch

101 Kontribusi 35 Poin

Dipost 6 tahun yang lalu

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

avatar beckbella
@beckbella

68 Kontribusi 38 Poin

Dipost 6 tahun yang lalu

@blackarch

Kalau untuk perkalihan nya akan di letakkan dimana ya??

Terima kasih atas respon nya.

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

om maaf mba @blackarch. Terima kasih atas bantuan nya ya

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

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

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

@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'];

avatar blackarch
@blackarch

101 Kontribusi 35 Poin

Dipost 6 tahun yang lalu

OK mba @blackarch saya coba dulu ya. Terima kasih atas saran nya dan bantuan nya selama ini. :)

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban