Örnek 1
Kod: Tümünü seç
Tablo1
Ali
Veli
Mehmet
Ahmet
Tablo2
1
2
Sonuç
Ali 1
Veli 2
Mehmet null
Ahmet null
Kod: Tümünü seç
Tablo1
Ali
Veli
Tablo2
1
2
3
4
Sonuç
Ali 1
Veli 2
null 3
null 4
Kod: Tümünü seç
Tablo1
Ali
Veli
Mehmet
Ahmet
Tablo2
1
2
Sonuç
Ali 1
Veli 2
Mehmet null
Ahmet null
Kod: Tümünü seç
Tablo1
Ali
Veli
Tablo2
1
2
3
4
Sonuç
Ali 1
Veli 2
null 3
null 4
Kod: Tümünü seç
select * from tablo1,tablo2
Kod: Tümünü seç
CREATE TABLE A (
A1 INTEGER NOT NULL,
A3 VARCHAR(10)
);
CREATE TABLE B (
B1 INTEGER NOT NULL,
B3 VARCHAR(10)
);
INSERT INTO A (A1, A3)
VALUES (1, 'Leyla');
INSERT INTO A (A1, A3)
VALUES (2, 'Şeyma');
INSERT INTO A (A1, A3)
VALUES (3, 'Zeynep');
INSERT INTO A (A1, A3)
VALUES (4, 'Rukiye');
INSERT INTO A (A1, A3)
VALUES (5, 'ÜmmüGülsüm');
INSERT INTO B (B1, B3)
VALUES (1, 'Ali');
INSERT INTO B (B1, B3)
VALUES (2, 'Veli');
INSERT INTO B (B1, B3)
VALUES (3, 'Süleyman');
INSERT INTO B (B1, B3)
VALUES (4, 'Rüknettin');
Kod: Tümünü seç
execute block
returns (sai int, SA varchar(10),sbi int, SB varchar(10))
as
declare variable counta int;
declare variable countb int;
declare variable cmx int;
declare variable cntr int=0;
Begin
select count(*) from a into :counta;
select count(*) from b into :countb;
cmx = maxvalue(counta,countb);
cntr=0;
while (cntr<cmx) do
Begin
sai=null;
sbi=null;
SA=null;
sb=null;
for select first 1 skip (:cntr) a.a1,a.a3 from a order by a.a1 into :sai, :SA do
Begin
End
for select first 1 skip (:cntr) b.b1,b.b3 from b order by b.b1 into :sbi, :Sb do
Begin
End
cntr = cntr +1;
suspend;
End
End;
Kod: Tümünü seç
SAI SA SBI SB
1 Leyla 1 Ali
2 Şeyma 2 Veli
3 Zeynep 3 Süleyman
4 Rukiye 4 Rüknettin
5 ÜmmüGülsüm <null> <null>
Kod: Tümünü seç
with recursive x as (
select 1 as ID
,(select x1.A3 from A x1 rows 1) as alan_adi
from rdb$database
union all
select ID+1
, (select x1.A3 from A x1 rows ID+1 to ID+1) as alan_adi
from x where ID<(select count(*) from A)
),
y as (
select 1 as ID
,(select y1.B3 from B y1 rows 1) as alan_adi
from rdb$database
union all
select ID+1
, (select y1.B3 from B y1 rows ID+1 to ID+1 ) as alan_adi
from y where ID<(select count(*) from B)
)
select * from x
full join y on x.ID = y.ID
Kod: Tümünü seç
ID ALAN_ADI ID1 ALAN_ADI1
1 Leyla 1 Ali
2 Şeyma 2 Veli
3 Zeynep 3 Süleyman
4 Rukiye 4 Rüknettin
5 ÜmmüGülsüm null null
Kod: Tümünü seç
execute block ( ekipisid int=:ekipisid)
returns
(
iekipisdetayid int,
ikod skod,
iaciklama vc100 ,
iserino vc50,
iolcubirimi vc100,
imiktar1 spara4,
imiktar2 spara4,
imiktar3 spara4,
mekipisdetayid int,
mkod skod,
maciklama vc100 ,
mserino vc50,
molcubirimi vc100,
mmiktar1 spara4,
mmiktar2 spara4,
mmiktar3 spara4
)
as
declare variable ciscilik int;
declare variable cmalzeme int;
declare variable cmax int;
declare variable counter int=0;
declare variable eid int;
Begin
eid = ekipisid;
select count(ekipisdetayid) from ekipisdetay where ekipisdetay.ekipisid=:eid and ekipisdetay.tur=1 into :ciscilik;
select count(ekipisdetayid) from ekipisdetay where ekipisdetay.ekipisid=:eid and ekipisdetay.tur=2 into :cmalzeme;
cmax = maxvalue(ciscilik,cmalzeme);
counter =0;
while (counter < cmax) do
Begin
iekipisdetayid =null;
ikod =null;
iaciklama =null;
iserino =null;
iolcubirimi =null;
imiktar1 =null;
imiktar2 =null;
imiktar3 =null;
mekipisdetayid =null;
mkod =null;
maciklama =null;
mserino =null;
molcubirimi =null;
mmiktar1 =null;
mmiktar2 =null;
mmiktar3 =null;
for select first 1 skip (:counter)
ekipisdetayid,
kod,
aciklama,
serino,
olcubirimi,
miktar1,
miktar2,
miktar3
from ekipisdetay
where
ekipisdetay.ekipisid=:eid
and
ekipisdetay.tur = 1
into
:iekipisdetayid,
:ikod,
:iaciklama,
:iserino,
:iolcubirimi,
:imiktar1,
:imiktar2,
:imiktar3
do
Begin
End
for select first 1 skip (:counter)
ekipisdetayid,
kod,
aciklama,
serino,
olcubirimi,
miktar1,
miktar2,
miktar3
from ekipisdetay
where
ekipisdetay.ekipisid=:eid
and
ekipisdetay.tur = 2
into
:mekipisdetayid,
:mkod,
:maciklama,
:mserino,
:molcubirimi,
:mmiktar1,
:mmiktar2,
:mmiktar3
do
Begin
End
counter = counter +1;
suspend;
End
End;