Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da li je bug, ili je upit suvise komplikovan!?

[es] :: Access :: Da li je bug, ili je upit suvise komplikovan!?

[ Pregleda: 2253 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Da li je bug, ili je upit suvise komplikovan!?28.11.2007. u 09:43 - pre 199 meseci
Pozdrav,

nisam vičan, nešto previše sa Access - om, tj. ne poznajem u potpunosti njegove mogućnosti.

Odradio sam jedan Query koji daje rezultat ali kad pokušam snimiti ga, jednostavno Access pukne. Primetio sam, kad napišem neku upit i snimim ga, da Access preformuliše taj sql ukoliko možda postoji "elegantnije rešenje", te pomislih da ne puca zbog toga jer ne razume kako ovaj moj upit da preformuliše!?!

Naime, imamo tabelu "PRAVNA" lica, "ZAGLAVLJE" računa, tabelu "ZBIRNO" po računu, i da skratim priču, tabelu "UPLATE". U tabeli "PRAVNA" se evidentiraju pravna lica, u "ZAGLAVLJE" zaglavlje računa, "ZBIRNO", ukupna suma po računu, a u "UPLATE", koliko je uplaćeno po računu. Query koji sam pravio se odnosi na prikaz ukupne svote po računu i ukupno uplaćeno po računu.
Code:

select ul.br_dok,
         ul.kupac,
         ul.naziv,
         ul.vrednost,
         up.uplaceno
from
 (select zg.br_dok,
         zg.kupac,
          p.naziv, 
         zb.vrednost
         
  from 
   -- spajanje zaglavlja računa sa ukupnom sumom po računu
   (zaglavlje as zg inner join zbirno as zb on 
       (zg.dok = zb.dok) and (zg.br_dok = zb.br_dok))

   -- spajanje sa pravnim licima radi dobijanja naziva
    inner join pravna as p on p.id = zg.kupac

   -- R predstavlja racune jer postoje i predracuni koji su definisani kao P
  where zg.dok = 'R') as ul

  -- spajanje sa uplatama 
  inner join (select br_dok,
                     sum(uplata) as uplaceno
                from uplate
                group by br_dok) AS up on up.br_dok = ul.br_dok;

Moja ideja je bila da se pokupi broj dokumenta, naziv kupca i vrednost po računu, pa da se to spoji sa sumom uplata iz tabele gde se unose uplate, preko broja računa. To mi je delovalo kao najednostavnije, pošto samu bazu nisam ja postavljao. Al, Access daje izlaz upita i to korektan, al puca pri snimanju!?!

Hvala unapred.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Da li je bug, ili je upit suvise komplikovan!?28.11.2007. u 10:29 - pre 199 meseci
Primedbe:
1. Ispravio sam tvoj SQL tako sto sam kljucne reci napisao velikim slovima zbog citlljivosti (sto i tebi preporucujem)
Code:

SELECT ul.br_dok, ul.kupac, ul.naziv, ul.vrednost, up.uplaceno
FROM
(SELECT zg.br_dok, zg.kupac, p.naziv, zb.vrednost FROM  
    (zaglavlje AS zg INNER JOIN zbirno AS zb ON (zg.dok = zb.dok) AND (zg.br_dok = zb.br_dok))
    INNER JOIN pravna AS p ON p.id = zg.kupac
    WHERE zg.dok = 'R') AS ul
INNER JOIN 
(SELECT br_dok, SUM(uplata) AS uplaceno FROM uplate GROUP BY br_dok) AS up ON up.br_dok = ul.br_dok

2.Kada sam to uradio, prekontrolisao sam ispravnost SQL-a i ne vidim nista lose, osim sto prilikom JOIN klauzule na levoj strani ON izkaza treba da ti se nalazi leva tabela iz JOIN iskaza koji formiras - cistije je!

npr. ti pises:
Code:

INNER JOIN pravna AS p ON p.id = zg.kupac

a ja ti kazem da bi trebalo:
Code:

INNER JOIN pravna AS p ON zg.kupac = p.id


Probaj to, jer ja ne mogu - trebao si da uploadujes bazu (moze i prazna) - olaksao bi nam posao.
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Da li je bug, ili je upit suvise komplikovan!?28.11.2007. u 14:37 - pre 199 meseci
Improvizovao sam jednu bazicu, gde se na mom računaru manifestuje problem koji sam gore naveo.
Upit za Query:
Code:

SELECT ul.br_dok, ul.kupac, ul.naziv,
             ul.vrednost, up.uplaceno
FROM
 (SELECT zg.br_dok, zg.kupac, p.naziv,  zb.vrednost
     FROM  (zaglavlje as zg INNER JOIN  zbirno as zb ON  zg.br_dok = zb.br_dok)
          INNER JOIN  pravna as p ON zg.kupac =  p.id_lica) as ul
  INNER JOIN 
    (SELECT br_dok, SUM(uplata) as uplaceno
      FROM uplate
      GROUP BY br_dok) AS up
        ON ul.br_dok = up.br_dok;

U principu, ne moram Query da snimim, rešio sam to iz koda, al bih voleo da znam da li je bug ili je upit problematičan!?!
Someone's sitting in the shade today because someone planted a tree a long time ago.
Prikačeni fajlovi
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Da li je bug, ili je upit suvise komplikovan!?28.11.2007. u 14:54 - pre 199 meseci
Nesto je do tvoje instalacije, ja sam lepo snimio kod sebe
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Da li je bug, ili je upit suvise komplikovan!?28.11.2007. u 15:51 - pre 199 meseci
I kod mene radi korektno. Ako vam to nešto znači. Probaj da u Tools, Options, na General kartici čekiraš opciju Compact and Repair i onda zatvoriš i otvoriš ponovo .mdb. Ponekad se dešava da je baza prljava. Mada obzirom da je novo kreirana i malo rađena ?????
Prikačeni fajlovi
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Da li je bug, ili je upit suvise komplikovan!?29.11.2007. u 09:47 - pre 199 meseci
U redu, bitno mi je da nije bug. Moguće da moja verzija iz nekog razloga puca.
U svakom slučaju, hvala Vam puno.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

[es] :: Access :: Da li je bug, ili je upit suvise komplikovan!?

[ Pregleda: 2253 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.