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] Buat event sql server untuk field kode (primary key) otomatis

bagaimana caranya membuat sebuah event utk men-generate secara otomatis sebuah field yg dijadikan sebagai PRIMARY KEY?

Comments

  • iya mas klo tipe datax integer saya sudah paham

    nah jika tipe datanya varchar gmana mas?

    jadi misal
    table
    kode  KB909812,KB909822

    jdi penentuan primary key-x berdasarkan suatu kondisi yg dgabung menjadi suatu kode dalam primary key


    itu bagaimana mas?

    mohon bantuanya

  • mas BOO sibukahhh? kok g dbalas sihhh....
  • sori, kelewat gak baca ... :D

    itu PK nya kan tetep ada nomer berurutnya,
    asalnya dari mana ?
    bentuknya spt apa ?
  • oiya mas, klo untuk ngakalix lewat koding/script udah bisa sih mas, tinggal buat variable trus dtambahkan deh...
    klo lewat function/triger ada referensix mas?

    tpi ada soal yg lbh urgent nih mas.... hehehehe,,,,, ttg penghitungan total sum...
    gimana mas mau ikut HAJAR g nih... hehehe
    berharap gw...
  • ini dulu :
    itu PK nya kan tetep ada nomer berurutnya,
    asalnya dari mana ?
    bentuknya spt apa ?

    soalnya gw sendiri menghindari PK berupa varchar
    gw kagak tau kenapa kalo pake relasi PK nya varchar selalu lebih lelet dibanding yg PK nya asli numerik
  • klo untuk kondisix q buat asal aja mas, dgn tujuan uNIQUE itu tadi,,, utk kombinasinya q buat asal aja mas, tpi untuk yg HURUF aku sesuaikan dgn kbutuhan:
    misal nama kota ato objek....

    wak klo lelet gak-nya g pernah mperhatikan q mas.... entah kalo datax dah mulai puluhan ribu, mungkin benar yg mas utarakan tadi.
  • angkanya ngasal = random ?

    kagak bisa !

    serandom-randomnya angka, tetep bisa keluar angka yg sama
    mending berurut

    misal panjang 5 digit
    ya bikin nomernya urut 00000 - 99999
    jangan random

    kalo pake random, semakin banyak angka yg sudah terpakai
    bakal semakin tinggi kemungkinan angka yg sudah terpakai bakal nungul lagi

    dan kalo pake berurut, ya mending pake auto increment
  • iya maksudq gini lho kang mas....
    table
    kode  KB909812,KB909822

    misal di delphi,
    q vuat variable:
    misal pada kode = KB909812
    a:= KB9;
    angka:= yg 09812 q tangkap dgn penggunaan substring pada sql-x dgn penggunaan fungsi Max, jdi data akan tsortir bdasarkan data yg takhir masuk...
    kode:= a + angka + 10

    jadi variable kode dalam delphi ini yang saya gunakan untuk proses insert into otomatis alias generate otomasti mlalui delphi-x...

  • kalo gw sih, mending ada field terpisah antara field yg dipake jadi PK dan field yg bentuknya string terformat atau kategori

    jadi ada field, misal :

    id | cat
    9812 | 'KB9'
    9822 | 'KB9'

    atau

    id | format
    9812 | 'KB909812'
    9822 | 'KB909822'

    yg id buat PK
    yg string terformat cuma dipake value nya kalo dibutuhkan
    atau kalo pake model kategori, mesti pakai fungsi CONCAT() saat SELECT

    kalo yg string terformat, mesti bikin trigger
    yg pake kategori, biasa aja
  • iya mas, awalnya juga kpikiran gitu juga, cuman aku sendiri yg bingung mo ngambil dari field apa aja....
    yg jelas KB-x itu udah ngambil dari salah 1 yg ada....

    lanjut Next Question boleh mas yaa?
    ttg penghitungan total dari query sum yg telah q buat...

    hehehe
  • buat aja topik nya
  • select distinct(jns) as nama,
    isnull(round((select sum(b.jml) from tblmutasijnsgula b
        where b.kdjns=(select x.kd from tblmstrjnsgula x where x.jns=a.jns) and tgl>=getdate()),0),0) as saldoawal,
    ------------------------------------------------------
    isnull(round((select sum(b.jml) from tblmutasijnsgula b
             where b.kdjns=(select Y.kd from tblmstrjnsgula Y where Y.jns=a.jns)
             and tgl<=getdate() and day(tgl)='5' and month(tgl)='6' ),0),0) as MASUKharini,
    ------------------------------------------------------
    isnull(round((select sum(b.jml) from tblmutasijnsgula B
             where B.kdjns=(select Y.kd from tblmstrjnsgula Y where Y.jns=a.jns)
        and tgl>=(CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS datetime) -1)
        AND tgl<=(CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS datetime))),0),0) as MASUKharilalu,
    ------------------------------------------------------
    isnull(round((select sum(b.jml) from tblmutasijnsgula b
             where b.kdjns=(select X.kd from tblmstrjnsgula X where X.jns=a.jns)
             and ((tgl between getdate()-1 and getdate()))),0),0) as MASUKsmpharini,
    ------------------------------------------------------
    isnull(round((select sum(C.jml) from tblambildo C
        where c.kdjns=(select x.kd from tblmstrjnsgula x where x.jns=a.jns) and day(tgl)='05'
        and year(tgl)='2012' and month(tgl)='06'),0),0) as OUThariniDO,
    ------------------------------------------------------
    ISNULL(ROUND((SELECT SUM(C.JML) FROM TBLAMBILDO C
        WHERE C.KDJNS=(SELECT X.KD FROM TBLMSTRJNSGULA X WHERE X.JNS=A.JNS)
        AND tgl>=(CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS datetime) -1)
        AND tgl<=(CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS datetime))),0),0) AS OUTharilaluDO,
    ------------------------------------------------------
    isnull(round((select sum(C.jml) from tblambildo C
        where c.kdjns=(select x.kd from tblmstrjnsgula x where x.jns=a.jns) and day(tgl)='05'
        and year(tgl)='2012' and month(tgl)='06'),0),0) + ISNULL(ROUND((SELECT SUM(C.JML) FROM TBLAMBILDO C
        WHERE C.KDJNS=(SELECT X.KD FROM TBLMSTRJNSGULA X WHERE X.JNS=A.JNS)
        AND tgl>=(CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS datetime) -1)
        AND tgl<=(CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS datetime))),0),0) AS OUTSmpHRini,
    ------------------------------------------------------
    isnull(round((select sum(b.jml) from tblmutasijnsgula b
        where b.kdjns=(select x.kd from tblmstrjnsgula x where x.jns=a.jns) and tgl>=getdate()),0),0) +
    isnull(round((select sum(b.jml) from tblmutasijnsgula b
             where b.kdjns=(select X.kd from tblmstrjnsgula X where X.jns=a.jns) and ( (tgl between getdate()-1 and getdate()) ) ),0),0) -
    isnull(round((select sum(C.jml) from tblambildo C
        where c.kdjns=(select x.kd from tblmstrjnsgula x where x.jns=a.jns) and day(tgl)='05' and year(tgl)='2012' and month(tgl)='06'),0),0) -
    ISNULL(ROUND((SELECT SUM(C.JML) FROM TBLAMBILDO C
        WHERE C.KDJNS=(SELECT X.KD FROM TBLMSTRJNSGULA X WHERE X.JNS=A.JNS)
        AND tgl>=(CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS datetime) -1) AND tgl<=(CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS datetime))),0),0) -
    isnull(round((select sum(jml) from tblmutasijnsgulasisa where kdjns=(select kd from tblmstrjnsgula X where x.jns=a.jns)),0),0) as SISA
    ------------------------------------------------------
    from tblmstrjnsgula a, tblmutasijnsgula B, tblambildo C, tblmutasijnsgulasisa D
    group by jns



    jadi query diatas, q gunakan untuk menghitung total jumlah mas
    berikut q sertakan screenshot-x mas....
    [IMG]http://i39.tinypic.com/66et0i.jpg[/IMG]

    jdi intinya bagimana cara melakukan penghitungan total pada baris-7, dari setiap kolom yg saya tampilkan dalam screenshot diatas..



  • hadoh ...
    itu data ada berapa mas ?
    gw perasaan sudah pesen dari kapan hari ...
    jangan pake subquery, kecuali bener-bener kagak ada cara lain

    itu yg baca bingung maksudnya apaan
    yg debug juga bingung

    struktur table elo kaya apa ?
  • mas, kagak ada db gui lain kah ?
    yg bisa export struktur jadi SQL ?
  • edited July 2013
    cuman sqlserver thok mas......

    ehehe maaf mas klo bikin pusing.......
  • CREATE TABLE [dbo].[TblAmbilDO] (
        [kdtran] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [tgl] [datetime] NULL ,
        [NoDo] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Jml] [float] NULL ,
        [Oleh] [varchar] (70) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [ThMG] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [kdjns] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [gdg] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [NoKend] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [noSJ] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Tujuan] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo].[TblMstrJnsGula] (
        [kd] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [jns] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Gdg] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [NmCetak] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [urut] [int] NULL ,
        [nmSmS] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo].[TblMutasiJnsGula] (
        [kdtrans] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Tgl] [datetime] NULL ,
        [kdJns] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Jml] [float] NULL ,
        [gdg] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [ThMg] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [NoMemo] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Konfirmasi] [float] NULL ,
        [PER] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [SisaThLalu] [float] NULL
    ) ON [PRIMARY]
    GO


    CREATE TABLE [dbo].[TblMutasiJnsGulasisa] (
        [kdtrans] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Tgl] [datetime] NULL ,
        [kdJns] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Jml] [float] NULL ,
        [kemasan] [float] NULL ,
        [ThMg] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [gdg] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [nusindo] [float] NULL ,
        [RjglHijau] [float] NULL
    ) ON [PRIMARY]
    GO

  • coba elo cerita dulu,
    maksud query elo yg semrawut di atas itu mau buat nampilin apa ?
  • edited July 2013
    nampilin saldo awal -> tblmutasijnsgula, tblmstrjnsgula
    pemasukan = harini -> tblmutasijnsgula, tblmstrjnsgula
                       hari kmarin -> tblmutasijnsgula, tblmstrjnsgula
                       smphariini -> tblmutasijnsgula, tblmstrjnsgula
    pengeluaran = hariini -> tblambildo, tblmstrjnsgula
                      harikmarin -> Tblambildo, tblmstrjnsgula
                    smpharini -> TblAmbilDO, tblmstrjnsgula

    sisa = (saldoawal + pemasukan SMPharini) - (pengeluaran SMPharini - tblmutasijnsgulasisa)

    ket:
    Tblmutasijnsgulasisa= diisi 1 x dlam stahun untuk jdi saldo awal pada tahun brikutnya

    itu kan udah tampil digambar, nah pertanyaan saya, bagaimana carax untuk menampilkan jumlah total per kolom atau field...



  • sql server juga punya rollup, sama kaya mysql
    http://msdn.microsoft.com/en-us/library/ms189305(v=sql.90).aspx

    tapi suwer mas,
    itu query berantakan elo, kalo bisa di sederhanakan ... sederhanakan saja
    tanpa subquery

    biarpun hasilnya sudah nungul

    yg elo buat bakal beresiko jika data sudah banyak
    lemotnya bakal ampun-ampunan

    coba belajar lagi bikin query yg bener
  • hehehe,,,, klo belajar lgi bikin query ya harus lah mas,, kan cita2 gw mo jadi Database Administrator... hehhee

    iya kmarin juga sempat nyoba ROLLUP atau CUBE, msh g bisa juga,,,
    mo buat pakek union malah bingung jugaa... adohhhh
  • klo untuk memperingkas query-x ada saran mas?
    sbenerx masih ada 1 table lagi, tpi klo tak liat2 strukturx g ada yg nyambung dgn ke-4 table diatas,, jdi 1 table tsb masuk di bagian pengeluaran....
Sign In or Register to comment.