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

[ASK] Nested atau PIVOT Query di SQL

Buat para suhu suhu di diskusi web saya mau tanya perihal Query di SQL Server,

jadi gini suhu, saya udah punya tabel transaksi sama tabel referensi yang datanya saya Query buat ngehasilin output yang diharapkan

nah untuk tabel transaksinya ini suhu :

image

untuk tabel referensinya ini suhu :

image

nah outputnya kaya gini suhu :

image

NOTE :

ID_TRANS 00 = AMBIL DARI JUMLAH ITEM YANG ADA DI KDBEA 00000 PADA TABLE TRANSAKSI
ID_TRANS 01 = AMBIL DARI JUMLAH BERAT YANG ADA DI KDBEA 00000 PADA TABLE TRANSAKSI
ID_TRANS 31 = AMBIL DARI BEA YANG ADA DI KDBEA 00000 PADA TABLE TRANSAKSI
ID_TRANS 33 = AMBIL DARI BEA YANG ADA DI KDBEA 00002 ATAU 00009 PADA TABLE TRANSAKSI
ID_TRANS 14 = AMBIL DARI BEA YANG ADA DI KDBEA 00003 ATAU 00004 PADA TABLE TRANSAKSI

saya udah coba bikin querynya, tapi hasilnya masih ngga sesuai sama output yang diharapkan.

ini querynya :

SELECT ID_USER, ID_SYSTEM, KD_PRODUK, NOMOR_TRANSAKSI, TANGGAL, ID_TRANS, KANTOR_CABANG, KANTOR_INDUK,ID_STATUS, ID_CUSTOMER
FROM
( SELECT APPROVAL_1 AS ID_USER, '3' AS ID_SYSTEM, '3-'+KDLAYANAN AS KD_PRODUK, KDBACKSHEET, 
  CONVERT(VARCHAR(8), TGL_APPROVAL_1, 112) AS TANGGAL,
  CASE    WHEN JML_ITEM  <>0 THEN '00'
         WHEN JML_BERAT <>0 THEN '01'
         WHEN KDBEA IN ('00003','00004') THEN '14'
         WHEN KDBEA ='00000' THEN '31'
         WHEN KDBEA IN ('00002','00009') THEN '33'
  END AS ID_TRANS,
  A.KDKANTOR AS KANTOR_CABANG,
( SELECT KDKANTORM FROM T_REF_KANTOR WHERE KDGRUP='0001' AND A.KDKANTOR=KDKANTORC) AS KANTOR_INDUK,
  '0' AS ID_STATUS, KDPELANGGAN AS ID_CUSTOMER 
  FROM T_TRANSAKSI A WHERE NOMOR_TRANSAKSI='144050000000002') Z
  GROUP BY ID_USER,KDBACKSHEET,ID_SYSTEM,ID_STATUS,KD_PRODUK,TANGGAL,KANTOR_CABANG,KANTOR_INDUK,ID_CUSTOMER,ID_TRANS

nah dari hasil query itu jadinya malah 3 row yang muncul suhu,

Mohon bantuannya sama sharingnya suhu biar output yang dihasilkan sesuai sama yang dicontoh

Makasih





Comments

  • napa to yo kalo bikin query kok sukanya pake sub query ...
    padahal relasi pake JOIN juga bisa dilakukan ...

    query yg ini hasilnya apa :

    SELECT
      APPROVAL_1 AS ID_USER,
      '3' AS ID_SYSTEM,
      '3-'+KDLAYANAN AS KD_PRODUK,
      KDBACKSHEET, 
      CONVERT(VARCHAR(8), TGL_APPROVAL_1, 112) AS TANGGAL,
      A.KDKANTOR AS KANTOR_CABANG,
      '0' AS ID_STATUS,
      KDPELANGGAN AS ID_CUSTOMER 
    FROM
      T_TRANSAKSI A
    WHERE
      NOMOR_TRANSAKSI='144050000000002'

    lagian, kalo sudah berniat menggunakan table alias,
    ya konsisten dong alias table nya dipake di field yg dimiliki table tersebut
    biar kagak bingung itu field nya table yg mana
  • udah solved master kasusnya, jadinya pake UNPIVOT saya.

    makasih
Sign In or Register to comment.