Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

[TANYA] JAVA-MySQL : menampilkan satu id dengan beberapa parameter

Salam kenal Master2 Java sekalian...

saya punya data sbb dlm db mysql:

COUNTER    |    ID     |    CL    |    FH    |    ST
1                  |    01     |    7      |    21     |    0   
3                  |     01    |    13    |    39     |    1
4                  |     02    |    8      |    24     |    0   
5                  |     03    |    9      |    27     |    0
6                  |     02    |    10    |    30     |    1
7                  |     04    |    5      |    15     |    0
9                  |     01    |    2      |    6       |    0

saya mau menampilkan/print semua data yg punya ID >= 2 jadi sbb :

COUNTER    |    ID     |    CL    |    FH    |    ST
1                  |    01     |    7      |    21     |    0   
3                  |     01    |    13    |    39     |    1
9                  |     01    |    2      |    6       |    0
4                  |     02    |    8      |    24     |    0
6                  |     02    |    10    |    30     |    1

code saya hanya bisa menampilkan counter terkecil saja :

sql      = ("select ID, CL, FH, count(*) nb from report group by ID having nb >= 2");
            rs  = stmt.executeQuery(sql);
            while ( rs.next() ) {               
                int id          = rs.getInt("ID");
                String cl     = rs.getString("CL");
                String fh = rs.getString("FH"); 
                System.out.println(id + " ### " + cl  + " ### " + fh);
            }

1                  |    01     |    7      |    21     |    0
4                  |     02    |    8      |    24     |    0

mohon pencerahannya agar bisa menmpilkan semua :)

Tagged:

Comments

  • edited January 2016
    >= 2 ?
    atau <= 2 ?

    :D

    hasil yg elo contohkan itu <= 2 lho ... :))

    begini kan cukup :
    select ID, CL, FH, count(*) nb from report WHERE ID <= "02"

    tergantung tipe field "ID"
  • lebih besar kok >= :(
    kebaca nya cuma counter yg paling kecil
  • elo pengen yg nungul cuma ID 01 dan 02 ?
    itu <= "02" mas'e ... :D

    elo pake COUNT() dan HAVING buat apa to ?
  • bukan mas, saya mau nampilin semua data, walau ID nya sama. cuma 3 parameter utama, ID-CL-FH

    counter diabaikan mas. tapi dari koding tsb yg ditampilkan hanya satu data saja yg berisi ID-CL-FH TAPI berdasarkan counter terkecil. gimana caranya semua ditampilin, counter diabaikan
  • edited January 2016
    kapan hari gw pernah jawab pertanyaan mirip ...
    ntah dah posting yg mana ...

    tapi paling gampang pake sub query

    SELECT a.ID, a.CL, a.FH, b.NUM
    FROM report a
    LEFT JOIN (
      SELECT ID, COUNT(ID) AS NUM
      FROM report
      GROUP BY ID
    ) b ON b.ID=a.ID
    WHERE b.NUM ...
  • saya nyobain pake ini mas...

    sql1 = (  "SELECT * FROM position_report WHERE ID IN ( SELECT ID FROM report GROUP BY ID HAVING COUNT(*) > 3) ORDER BY ID" );
                rs  = stmt.executeQuery(sql1);
                while ( rs.next() ) {               
                    int id          = rs.getInt("ID");
                    String cl     = rs.getString("CL");
                    String fh = rs.getString("FH"); 
                    System.out.println(id + " ### " + cl  + " ### " + fh);
                }

    sesuai yg saya harapkan TAPI langsung nge-print semuanya.

    next step, bagaimana caranya menampilkan satu ID tertentu, kemudian mau saya koreksi. setelah setelah selesai koreksi baru menampilkan ID selanjutnya. begitu seterusnya...

    saya nyobain pakai LOOP FOR msh blm jalan.

    1. baca ID yg memiliki parameter lebih dari 3, kemudian ID tsb ditampung dalam sbuah array.
    2. nilai array tsb yg kemudian dijadikan nilai LOOP

    sql1 = (  "SELECT * FROM position_report WHERE ID IN ( SELECT ID FROM report GROUP BY ID HAVING COUNT(*) > 3) ORDER BY ID" );
                rs  = stmt.executeQuery(sql1);
                while ( rs.next() ) {
                    int id          = rs.getInt("ID");               
                    saveID.get(id);
                }

                    for ( int c = 1; c < saveID.size(); c++ ) {
                    sql1    = ( "select * from report where ID = '" + saveID.get(c) + " '" );
                    rs      = stmt.executeQuery(sql1);
                    while ( rs.next() ) {
                            int id          = rs.getInt("ID");
                            String cl     = rs.getString("CL");
                            String fh = rs.getString("FH"); 
                            System.out.println(id + " ### " + cl  + " ### " + fh);
                    }
               }




  • edited January 2016
    lha query nya pan sudah gw tunjukin ... :D

    SELECT a.ID, a.CL, a.FH, b.NUM
    FROM report a
    LEFT JOIN (
      SELECT ID, COUNT(ID) AS NUM
      FROM report
      GROUP BY ID
    ) b ON b.ID=a.ID
    WHERE b.NUM > 3 AND a.ID = "xxx"
  • com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'a.ID' in 'field list' :(




  • dicoba dulu di db gui
    kalo di db gui beres, di koding biasanya juga ok

    cuma kalo di db gui yg sifatnya variabel ya mesti di tulis manual buat testing
Sign In or Register to comment.