Senin, 24 Februari 2014

Re: [belajar-access] Simpan 1set query untuk dipakai di query berikutnya

 

apakah hasilnya berupa satu tabel ? bagaimana formatnya ?
berupa dua tabel? bagaimana fomatnya ?
berupa tiga tabel? bagaimana formatnya ?
coba ilustrasikan dengan file excel, asal data dan hasil yang diinginkan.

ado recordset bisa mengembalikan banyak recordset dari satu eksekusi stored procedure yang menghasilkan banyak recordset.
misalkan kita punya storeprocedure yang mengembalikan dua recordset:


create proc sp_x_dan_y
as
select a,b,c from x
select a,b,c from y


maka di vba dengan ado kita bisa tarik recordset dari suatu command:
(r1 dan r2 adalah recordset object, cmd adalah command)

set r1 = cmd.execute
set r2 = r1.nextrecodset




bekerja dengan banyak tabel di storeprocedure sql server dapat ditempuh dengan berbagai cara:

1. subquery

select x.a,x.b,y.c
from
(select a,b,c
from x) as x
inner join
(select a,b,c
from y) as y
on x.a=y.a


2. temporary table

select a,b,c into #x from x

select a,b,c into #y from y

select x.a,x.b, y.c
from #x x
inner join #y y on x.a=y.a

drop table #x
drop table #y


3. temp table variable (more faster than temporary table)

declare @x table (a varchar(30), b int, c int)
declare @y table (a varchar(30), b int, c int)

insert into @x (a,b,c)
select a,b,c from x

insert into @y (a,b,c)
select a,b,c from y

select x.a, x.b, y.c
from @x x
inner join @y y on x.a=y.a


4. function return table

create function fn_x()
returns table
as
return
select a,b,c from x

create function fn_y()
returns table
as return
select a,b,c from y


select x.a, x.b, y.c
from fn_x() x
inner join fn_y() y on x.a = x.b



aksan kurdin



On 2/25/2014 6:21 AM, kbasuseno@yahoo.com wrote:
 

Dear Pakar,
Mau tanya

Misalkan kita ada data sbb :

Date COA Debit Credit
01-Jan 11101 100 -
01-Jan 11101 200 -
01-Jan 11101 150 -
01-Jan 11101 - 50
02-Jan 11101 - 50
02-Jan 11101 200
02-Jan 11101 100 -
02-Jan 11101 200 -
02-Jan 11101 150 -
02-Jan 11101 - 50
03-Jan 11101 - 50
03-Jan 11101 200
03-Jan 11101 100 -
03-Jan 11101 200 -
03-Jan 11101 150 -
03-Jan 11101 - 50

Saya ingin pecah data tersebut menjadi Opening Balance, Transaction dan Ending Balance

Opening Balance :

Select COA, sum(Debit) As OBDebit, Sum(Credit) As OBCredit From dbo.tableName
Where Doc_date '2014-02-01')

Transaction :

Select COA, sum(Debit) As TransDebit, Sum(Credit) As TransCredit From dbo.tableName
Where Doc_date Between '2014-02-01' and '2014-03-01'

Ending Balance :

EBDebit = OBDebit + TransDebit - TransCredit
EBCredit = OBCredit - TransDebit + TransCredit

Apakah bisa dibuat dalam 1 query / sp di sql server?
selama ini saya buat dulu 2 view baru di joint di sp, apakah bisa langsung dibuat dalam setu sp saja?

terima kasih

Sent from Yahoo Mail on Android


__._,_.___
Reply via web post Reply to sender Reply to group Start a New Topic Messages in this topic (3)
SPAM IS PROHIBITED
.

__,_._,___

Tidak ada komentar:

Posting Komentar