[ peddja_stankovic @ 05.03.2005. 20:39 ] @
imam dve dbf baze razlicitih struktura, na primer:

prvi dbf

1 10 15
1 12 10
2 9 18
3 4 6
3 5 8

.....



drugi dbf


1 18 19 20
2 3 6 7
3 8 19 10



hoccu deo fox koda koji bi generisao text file koji bi povezao prve kolone na sledeci nacin:

1 10 15
1 12 10
1 18 19 20
2 9 18
2 3 6 7
3 4 6
3 5 8
3 8 9 10



(da posle kecceva iz prve baze dodje kec iz druge baze itd...)
[ broker @ 05.03.2005. 22:53 ] @
Spajanje dve tabele radis komandom SELECT .. UNION

Medjutim da bi ih spojio treba da budu istih struktura. Ako nisu istih struktura moras napraviti istu strukturu tako sto ces iz obe tabele uzeti ona polja koja ti trebaju a ako u jednoj tabeli nedostaje neko polje koje ti treba iz druge onda u SELECY to polje napravis.

Nisi napisao strukturu tvojih tabel aali ako pretpsotavimo da prva tabela ima polja P11, P12, P13 a druga tabela ima polja P21, P22, P23 i P24 Onda upit izgleda otprilike ovako (pisem napamet)


SELECT
p11 as p1,
p12 as p2,
p13 as p3,
0 as p4
FROM t1
UNION
SELECT
p21 as p1,
p22 as p2,
p23 as p3,
p24 as p4
FROM t2


sa ORDER BY resavas redosled polja u dobijenoj tabeli.



Pedja
[ peddja_stankovic @ 06.03.2005. 05:49 ] @
Hvala za ovo, mogu tek sutra da probam na poslu. Uzgred, nije neophodno da pravim novu bazu. Dovoljno je da samo ide na stampu. Znao bih da uradim ovo u svakom drugom programu ali slab sam sa foxom. Ima li neki WHILE pa PRINT dok je kec iz prve baze pa PRINT kec iz druge baze, pa dvojka itd....

[ rms @ 05.04.2005. 16:33 ] @
Ne mora unija može nešto slično ovome:
Code:

use tabela1 in 0
use tabela2 in 0
select tabela1
go top
select tabela2
go top

do while .t.
  if tabela1.polje1 <= tabela2.polje1
* ??? komanda salje sadrzaj direktno na stampac
    ???tabela1.polje1+" "+tabela1.polje2+" "+tabela1.polje3
  else
    ???tabela2.polje1+" "+tabela2.polje2+" "+tabela2.polje3+" "+tabela2.polje4
  endif
  select tabela1
  if !eof()
    skip
  endif
  select tabela2
  if !eof()
    skip
  else
    exit
  endif
enddo

close tables all

[ broker @ 05.04.2005. 23:29 ] @
U pravu si, sto prosto kad moze komplikovano :)
[ rms @ 06.04.2005. 12:38 ] @
Kolega je nov u Foxu, pa čisto da vidi šta je sve moguće... a napravih i grešku pa evo ispravke:
Code:

m.bKrajTabele1=.f.
m.bKrajTabele2=.f.
use tabela1 in 0
use tabela2 in 0
select tabela1
go top
select tabela2
go top

do while !m.bKrajTabele1 and !m.bKrajTabele2
  select tabela1
  if (!m.bKrajTabele1 and (tabela1.polje1 <= tabela2.polje1)) or m.bKrajTabele2
    ???tabela1.polje1+" "+tabela1.poljen
    if !eof()
      skip
      loop
    else
      m.bKrajTabele1=.t.
      go bottom
    endif
  endif
  select tabela2
  if (!m.bKrajTabele2 and (tabela1.polje1 > tabela2.polje1)) or m.bKrajTabele1
    ???tabela2.polje1+" "+tabela2.poljen
    if !eof()
      skip
      loop
    else
      m.bKrajTabele2=.t.
      go bottom
    endif
  endif
enddo
close tables all
return

Po nekad mi nedostaje Foxova fleksibilnost obrade kod ostalih baza.