Arsip: where item_id in (:parameter)

 
user image
more 12 years ago

mas_kofa

Saya lg bikin aplikasi pake interbase ........... saya pake Stored Procedure SP_STOCK_OP(bln,thn,groupitem_id);

declare variable aBulan1 integer;
declare variable aTahun1 integer;
declare variable aBulan0 integer;
declare variable aTahun0 integer;
begin
  aBulan1 = :BULAN + 1;
  aTahun1 = :TAHUN;
  if (aBulan1 = 13) then
  begin
    aBulan1 = 1;
    aTahun1 = aTahun1 + 1;
  end
  aBulan0 = :BULAN - 1;
  aTahun0 = :TAHUN;
  if (aBulan0 = 0) then
  begin
    aBulan0 = 12;
    aTahun0 = aTahun0 + 1;
  end
  
  for select inventoryitem_id,0,0,0,0
  from inventoryitem where inventoryitemgroup_id in (7,14)
  INTO :INVENTORYITEM_ID,:SALDO_AWAL,:MASUK,:KELUAR,:ADJUST
  DO
  BEGIN
  SUSPEND;
  END
   / saldo awal;  /
  for select a.inventoryitem_id,d.qty_pecah,0,0,0 from inventoryitem a,
  units b,atk_pecah c,ATK_opname_stockitem d, atk_opname_stock e where
  a.units_id=b.units_id and a.INVENTORYITEMGROUP_ID in (7,14)and
  c.inventoryitem_id=a.inventoryitem_id and d.inventoryitem_id=a.inventoryitem_id
  and e.monthperiod=:aBulan0 and e.yearperiod=:aTahun0 and e.id=d.header_id
  INTO :INVENTORYITEM_ID,:SALDO_AWAL,:MASUK,:KELUAR,:ADJUST
  DO
  BEGIN
  SUSPEND;
  END
  
   / adjustment;  /
  for select a.inventoryitem_id, a.qty_pecah,0,0,0 from atk_adjustitem a,atk_adjust b
  where a.header_id = b.id and b.tglbukti >= :BULAN || '/01/' || :TAHUN
  and b.tglbukti < :aBulan1 || '/01/' || :aTahun1
  INTO :INVENTORYITEM_ID,:ADJUST,:SALDO_AWAL,:MASUK,:KELUAR
  DO
  BEGIN
  SUSPEND;
  END
  / masuk from BTB  /
  for select b.inventoryitem_id, sum(a.qty) as masuk,0,0,0 from btblineitem a, polineitem b,
  btb c, inventoryitem d
  where a.polineitem_id=b.polineitem_id and c.btbdate >= :BULAN || '/01/' || :TAHUN
  and c.btbdate < :aBulan1 || '/01/' || :aTahun1 and a.btb_id=c.btb_id and
  d.inventoryitemgroup_id in (7,14) and d.inventoryitem_id = b.inventoryitem_id
  group by b.inventoryitem_id
  into :INVENTORYITEM_ID, :MASUK,:SALDO_AWAL,:KELUAR,:ADJUST
  DO
  BEGIN
  SUSPEND;
  END
  / keluar from ATK_OUT;  /
  for select b.inventoryitem_id, sum(b.qty_pecah) as keluar,0,0,0 from atk_out a, atk_outitem b,
  inventoryitem c where b.header_id=a.id and a.tglbukti >= :BULAN || '/01/' || :TAHUN
  and a.tglbukti < :aBulan1 || '/01/' || :aTahun1 and c.inventoryitemgroup_id in (7,14)
  and b.inventoryitem_id = c.inventoryitem_id
  group by b.inventoryitem_id
  into :INVENTORYITEM_ID, :KELUAR,:SALDO_AWAL,:MASUK,:ADJUST
  DO
  BEGIN
  SUSPEND;
END
end
query (SP) diatas bekerja dengan baik dan sesuai harapan .. namun........untuk menambahkan daftar inventoryitemgroup_item melalui parameter mendapatkan kendala............ kita perhatikan di atas <ada 5 query> masing-masing query ada syntax INVENTORYITEMGROUP_ID in (7,14) yang ingin saya tanyakan bagaimana cara merubah daftar yang ada dalam kurung melalui parameter <satu parameter saja> solusi sementara saya pake 10 parameter dan menggunakan where ... or..... sebanyak 10 Atas tanggapannya <biasa> saya ucapkan banyak terimakasih...<karna belum bisa ngasih apa2>
user image
more 12 years ago

MrLee

waduh; maaf sebenarnya kurang ngerti neh; yg lebih senior / expert dong yg nanggapi; ini thread ampeh terlewatkan; dan baru keliatan sekarang nih; mungkin karena brp hari ini thread di DI lagi banyak; jadi tertimpah ama yg baru; mungkin saran nih, ada baiknya di DI juga ada tempat buat thread yg memang baru mendapat kurang dr 2 tanggapan; jadi lebih mudah baca / nyari nya; saya hanya bisa nanggapi yg paling atas kayaknya ngak cocok mungkin saya yg salah mengenai ini

  aBulan0 = :BULAN - 1;
  aTahun0 = :TAHUN;
  if (aBulan0 = 0) then
  begin


    aBulan0 = 12;
    aTahun0 = aTahun0 + 1;
  end
menurut saya yg benar ini

  aBulan0 = :BULAN - 1;
  aTahun0 = :TAHUN;
  if (aBulan0 = 0) then
  begin



    aBulan0 = 12;
    aTahun0 = aTahun0 - 1;
  end
semoga cepet terselesaikan; dan bisa di post hasilnya kesini dan temen-temen yg lagi belajar dapat manfaat dari forum yg tercinta ini
user image
more 12 years ago

mas_kofa

oh..iya bener kata @MrLee.... seharusnya tahunnya dikurangi bukan ditambah.......... aTahun0 = aTahun0 - 1; makasih banyak...
user image
more 12 years ago

zieborg

on lagi ah.. Mas Kofa, di FB(saya pake FB, bukan IB, tapi mestinya sama) tidak/belum support parameter spt itu (s/d FB 2.1), tapi bisa dicoba pake EXECUTE statement (FB 1.5 or higher, IB 6.5 or higher) contohnya :

CREATE PROCEDURE NEW_PROCEDURE (
    PARAM_INPUT VARCHAR(3000))
RETURNS (
    PARAM_OUTPUT VARCHAR(18))
AS
DECLARE VARIABLE QRY VARCHAR(500);
begin
  QRY= 'SELECT NAMA_FIELD FROM NAMA_TABEL WHERE CRITERIA IN(' || :PARAM_INPUT || ')';
  FOR EXECUTE STATEMENT :QRY INTO :PARAM_OUTPUT DO SUSPEND;
end
saya coba jalankan di IBExpert SQL: SELECT * FROM NEW_PROCEDURE('3,4') berjalan dg baik Ato lebih mudah pake temporary tabel (FB 2.1 or higher) semoga bermanfaat...
user image
more 12 years ago

mas_kofa

tapi bisa dicoba pake EXECUTE statement (FB 1.5 or higher, IB 6.5 or higher)
makasih atas tangapannya aku coba dulu.......kebetulan aku juga pake IB 6.5
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com