|
[ miki_ja @ 29.05.2006. 15:57 ] @
| Iz jedne tabele izdvajam sve redove pod određenim datumom (u jednom mesecu) i učitavam ih u DataSet. Posle toga hoću da prođem kroz sve redove DataSeta i u njemu ostavim samo redove sa različitom kolonom ID.
Recimo, iteriram kroz DataSet, nailazim na red ID = “A”, (ostavljam ga u DataSetu), nailazim na ID = “B”, (ostavljam ga), “C”, “D”, “E”, (ostavljam), zatim ponovo nailazim na “A” (izbacujem ga), nailazim na “D” (izbacujem ga) itd.
E sad… Svaki put kad naiđem na red sa novim ID-om, hoću da njegova kolona, recimo – “Uplata”, sadrži sumu svih uplata pod tim ID-om. Znači, na kraju hoću da mi ostane pet redaova u DataSetu - ID = A, B, C, D, E , ali pod “Uplatom” treba da bude suma svih uplata koje su postojale pod tim ID-om.
Nadam se da nisam previše zamrsio :) ! Kako ovo da izvedem?
|
[ Željko @ 29.05.2006. 16:25 ] @
Koliko sam ja shvatio ovo vrlo lako mozes da resis u sql-u kad punis data set uradis group by po polju ID i sum(kolona uplata), tako ces dobiti to sto si trazio mnogo brze nego da rucno ides kroz dataset i sabiras uplate sa iste ID-eve.
pozdrav Željko
[ miki_ja @ 30.05.2006. 00:05 ] @
Ja pokušavam da to rešim nekom petljom, mada valjao bi neki primer tog upita u međuvremenu...
[ Fedya @ 30.05.2006. 10:56 ] @
Znaci u SelectCommand tvog DataAdaptera uglavis nesto ovako:
SELECT
ID, SUM(KolonaUplate) as Uplata
FROM
TvojaTablea
GROUP BY
ID
i to je to
[ miki_ja @ 30.05.2006. 23:31 ] @
Extrica, ovo mi je baš pomoglo!
Međutim u jednom slučaju ne radi, i to baš u onom koji meni treba!
Ovako radi (i kada ubacim još neke kolone):
Code:
SELECT ID, Ime, Prezime, RedniBroj, SUM(KolonaUplate) as Uplata FROM MojaTabela GROUP BY ID, Ime, Prezime, RedniBroj
Ali kada isto pokušam sa datumom, nema šanse - ponovo dobijam sve redove:
Code:
SELECT ID, Ime, Prezime, RedniBroj, Datum, SUM(KolonaUplate) as Uplata FROM MojaTabela GROUP BY ID, Ime, Prezime, RedniBroj, Datum
: ??
[ Željko @ 01.06.2006. 18:42 ] @
Citat: Ali kada isto pokušam sa datumom, nema šanse - ponovo dobijam sve redove
Mozda bi malo trebao da pogledas sql upitni jezik, naime verovatno ti svaki row u tabeli ima dugaciji datum i zato dobijas sve redove(rows). Kada se radi group by onda se podaci grupisu po istim kolonama: znaci daj mi sve uplate(dobije se suma uplata) za isto ime i prezime i ID, ako tu dodas i datum i ako je datum za svaki row razlicit onda podaci ne mogu da se grupisu jer je taj jedan podatak(datum) razlicit za svaki row. To je i logicno, razmisli malo, dobije nesto ovako: ID=1, ime=Pera, prezime=Peric, suma uplata=99.99, sta bi trebalo da ti pise u polju datum? Kad u ovom primeru recimo imas tri uplate za Peru Perica od po 33.33, resenje je ako hoces da tu u polju datum stoji datum poslednje uplate, znaci do tog datuma Pera Peric je uplatio 99.99, onda upit izmenis ovako "SELECT ID, Ime, Prezime, RedniBroj, max(Datum), SUM(KolonaUplate) as Uplata FROM MojaTabela GROUP BY ID, Ime, Prezime, RedniBroj"
pozdrav Željko
[ miki_ja @ 02.06.2006. 00:13 ] @
Ok, snašao sam se u međuvremenu...
Setio sam se da se datum u jednom mesecu svakako razlikuje po danima, tako da sam iskoristio: "SELECT... MONTH(Datum)... GROUP BY MONTH(Datum)..." i to mi savršeno odgovara... ustvari, skoro savršeno - trebalo bi da u toj koloni postoji malo drugačiji zapis, ali smisliću nešto... :)
Svakako mi je potrebno malo znanja iz SQL-a, nemam nijednu knjigu, tako da bi mi značila neka elektronska, pa ako imaš, može na pp...
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|