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

SQL upit vrednosti kolona u vise zapisa

[es] :: MS SQL :: SQL upit vrednosti kolona u vise zapisa

[ Pregleda: 1674 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

favory
sef aop-a

Član broj: 191622
Poruke: 11
*.adsl.eunet.rs.



Profil

icon SQL upit vrednosti kolona u vise zapisa16.06.2009. u 17:50 - pre 180 meseci
Imam tabelu:

col1 col2 col3
.1.....0......2
.3.....4......5
.0.....0......6

rezultat treba da bude tabela:

col1
1
2
3
4
5
6

Pozdrav...

 
Odgovor na temu

#Ninja#
Tuzla

Član broj: 28925
Poruke: 259
*.PPPoE-2619.sa.bih.net.ba.



+1 Profil

icon Re: SQL upit vrednosti kolona u vise zapisa16.06.2009. u 18:25 - pre 180 meseci
Funkcija koja ti treba je UNPIVOT.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: SQL upit vrednosti kolona u vise zapisa16.06.2009. u 18:50 - pre 180 meseci
Code:
select col1 from tabela
union all
select col2 from tabela
union all
select col3 from tabela


I, naravno, redizajn loše isprojektovane baze.
 
Odgovor na temu

favory
sef aop-a

Član broj: 191622
Poruke: 11
*.adsl.eunet.rs.



Profil

icon Re: SQL upit vrednosti kolona u vise zapisa16.06.2009. u 19:21 - pre 180 meseci
Prihvatam svaki dobar predlog, pa i ako je upitanju redijzajniranje baze. Evo konkretnog "problema". Tabela sa tri kolone je tabela u kome su smesteni zapisi koji cine stavku fakture. Te kolone su: iznos fakture, osnovica za pdv i iznos pdv-a. Cini mi se da je logicno da budu tri kolone u jednom zapisu tabele. Iz te tabele se vrsi formiranje naloga za knjizenje sa sve kontiranjem:-). A nalog za knjizenje jedne stavke fakture se deli na tri zapisa i to jedan za iznos fakture, jedan za osnovicu i jedan za pdv (jer pravilo knjizenja jednostavno tako zahteva)!

Mozda nisam bio bas najjasniji u prvoj poruci! Radi se o upitu nad vise tabela. Dve u odnosu jedan prema vise (gde su u jednoj osnovni podaci fakture a u drugoj stavke iste). U trecoj se nalaze definisana konta za svaku stavku fakture i to posebno za iznos fakture, osnovicu i pdv. Upit ce biti popriilicno komplikovan, ali ne vidim bolje resenje!?



[Ovu poruku je menjao favory dana 16.06.2009. u 20:48 GMT+1]
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: SQL upit vrednosti kolona u vise zapisa16.06.2009. u 20:48 - pre 180 meseci
Citat:
favory: Te kolone su: iznos fakture, osnovica za pdv i iznos pdv-a. Cini mi se da je logicno da budu tri kolone u jednom zapisu tabele.

Dovde te kapiram i slažem se sa tobom. Logično je tako kao što kažeš.

E sad, pošto nisam upućen u knjigovodstvenu tematiku, ne kapiram ovo drugo, za odvajanje ta tri polja u tri odvojena reda. Je l' to mora u bazi da bude tako zapisano ili samo u prezentaciji? Ako je ovo drugo u pitanju, logično mi je da se to reši u aplikaciji...

Takođe, sad prvi put pominješ tri tabele (u prvoj poruci pominje se samo jedna). Pretpostavljam da je sa tri tabele ista priča, samo što ćeš imati left join-ove.
 
Odgovor na temu

favory
sef aop-a

Član broj: 191622
Poruke: 11
*.adsl.eunet.rs.



Profil

icon Re: SQL upit vrednosti kolona u vise zapisa17.06.2009. u 05:26 - pre 180 meseci
Nacin zapisivanja u drugoj bazi mora biti takav. Znaci tri reda! Svaki od ta tri iznosa ide na drugi konto, pa samim tim i u sledeci red. Ako bi se drzao nacina zapisivanja kao u prvoj tabeli, to bi bilo kao kada bi drzao sifre i nazive automobila u prodavnici automobila po tri u jednom redu u tri kolone! Tek tada bih imao problem kod formiranja izvestaja!

A evo i konkretnog primera:

Tabela1
Partner_Id........ NazPar
..33..............naziv partnera

Tabela2
Stav_Id............OpisStav..........konto1...konto2...konto3
..22..............stavka fakture 1.....444......777........888
..55..............stavka fakture 2.....666......222........999

Tabela1 i Tabela2 su sifarnici partnera i stavki faktura

Tabela3
Faktura_Id.......Partner_Id
....11..................33

Tabela4
Faktura_Id......Stav_Id.....iznos1....iznos2.....iznos3
...11.................22......... 1111......2222......3333
...11.................55......... 4444......5555......6666

Tabela3 i Tabela4 podaci fakture (tabele u odnosu jedan prema vise)

Rezultujuca tabela treba da izgleda:

konto......faktura_Id.......opis...............iznos
.444............11........naziv partnera......1111
.777............11........naziv partnera......2222
.888............11........naziv partnera......3333
.666............11........naziv partnera......4444
.222............11........naziv partnera......5555
.999............11........naziv partnera......6666

Inace sve ovo je nacin na koji funkcionise stara aplikacija, ali ne sa SQL-om. Problem je sto sam jos relativno tanak sa SQL-om. Ako neko imam volje da se udubi i predlozi mi resenje, bicu mu iskreno zahvalan!

Pozdrav...



[Ovu poruku je menjao favory dana 17.06.2009. u 09:04 GMT+1]

[Ovu poruku je menjao favory dana 17.06.2009. u 09:06 GMT+1]
 
Odgovor na temu

.:Marvin:.
Taurunum

Član broj: 36626
Poruke: 94
91.143.212.*



Profil

icon Re: SQL upit vrednosti kolona u vise zapisa17.06.2009. u 07:50 - pre 180 meseci
Jablan ti je dao dobar predlog, sa unijom.
Znaci u prvom delu knjizis iznose, u drugom osnovicu i trecem PDV.
Jesi li probao ovu logiku?
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: SQL upit vrednosti kolona u vise zapisa17.06.2009. u 12:48 - pre 180 meseci
I ja mislim da bi mu unija završila posao, plus par joinova na šifarnike...

Btw, @favory, http://www.elitesecurity.org/t106046-Baze-podataka-Pravila-foruma (3. stavka)
 
Odgovor na temu

favory
sef aop-a

Član broj: 191622
Poruke: 11
*.adsl.eunet.rs.



Profil

icon Re: SQL upit vrednosti kolona u vise zapisa17.06.2009. u 13:27 - pre 180 meseci
Da, Jablan je bio u pravu! Unija je resila stvar! Cak upit na kraju nije ni preterano komplikovan.
Pozdrav svima...
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: SQL upit vrednosti kolona u vise zapisa17.06.2009. u 14:17 - pre 180 meseci
U istom postu gde je Jablan pomenuo UNION, pise i ovo "I, naravno, redizajn loše isprojektovane baze."

Cim imas potrebu da radis UNPIVOT, jedan od nacina je i UNION, to znaci da ti tabele nisu normalizovane kako treba. Ako bi normalizovao onu tabelu koja ima kolone (Konto1, Konto2, konto3) rezultat bi dobio mnogo lakse, verovatno direktno iz tabele ili bi ti trebao samo jedan jednostavni JOIN. Mnogoje lakse prikazati normalizovane podatke u obliku

Code:

Tabela2 
Stav_Id............OpisStav..........konto1...konto2...konto3 
..22..............stavka fakture 1.....444......777........888
..55..............stavka fakture 2.....666......222........999



nego poci od tog oblika pa dobiti:
Code:

Rezultujuca tabela treba da izgleda:

konto......faktura_Id.......opis...............iznos
.444............11........naziv partnera......1111
.777............11........naziv partnera......2222
.888............11........naziv partnera......3333
.666............11........naziv partnera......4444
.222............11........naziv partnera......5555
.999............11........naziv partnera......6666




 
Odgovor na temu

[es] :: MS SQL :: SQL upit vrednosti kolona u vise zapisa

[ Pregleda: 1674 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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