Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 3.815 pregleda

Najnovija ↓

Komplikovano sortiranje ???!!! 30.10.2007. u 10:05 · pre 231 mesec #1
Problem:

Imam tabelu "Uslovi" prema kojoj radim filtriranje podataka druge tabele. Potrebno mi je da u prvoj tabeli uradim sortiranje podataka tako da slog sa najvise nula bude poslednji (a slog bez nula bude prvi). Evo kako izgledaju podaci :

Tabela "Uslovi" pre sortiranja :


uslov1 _ | _ uslov2 _ | _ uslov3 _ | _ uslov4 _ | _ uslov5 _ | _ uslov6 _
_222_______145________ 0_________100________0__________0____
_10________111________200________24222_____123________0_____
_100_______0__________111________0_________2000_______1000__
_111_______145________2000_______2_________1000_______20000_
_0_________0__________0__________0_________1__________0_____


Tabela "Uslovi" nakon sortiranja :


uslov1 _ | _ uslov2 _ | _ uslov3 _ | _ uslov4 _ | _ uslov5 _ | _ uslov6 _
_111_______145________2000_______2_________1000_______20000_
_10________111________200________24222_____123________0_____
_100_______0__________111________0_________2000_______1000__
_222_______145________ 0_________100________0_________0_____
_0_________0__________0__________0_________1__________0_____

Ono sto sam probao (a sto nikako ne mogu da namestim) jeste 'order by' sortiranje, ali ocigledno mi nesto nedostaje, jer dobijeni rezultat nije ni priblizno onome sto treba da se dobije.

Re: Komplikovano sortiranje ???!!! 30.10.2007. u 10:27 · pre 231 mesec #2
Tabele ti nisu normalizovane. Nema smisla da imaš polja "uslov1" - "uslov6".

Inače, za sortiranje bi mogao da koristiš SUM(ABS(SIGN(x))).

Naravno, pod uslovom da ti je baza normalizovana.
Re: Komplikovano sortiranje ???!!! 30.10.2007. u 10:38 · pre 231 mesec #3
Ne, ne.....

Nazivi polja su dati cisto deskriptivno. Konkretna polja imaju svoja imena, tipove, a tebele jesu normalizovane. Dati podaci su cisto radi lakseg objasnjenja problema :))

Da li bih mogao da te zamolim da napises kompletan izraz....
Hvala
Re: Komplikovano sortiranje ???!!! 30.10.2007. u 10:52 · pre 231 mesec #4
Iz tvog pitanja cini se da ti brojevi nisu u poljim anumerik tipa vec su karakter tipa, kao i da svaka cifra u broju ima neko znacenje (to jest da nije isto '0' i '000'. To vodi zakljucku da ti nesto nije bas dobro reseno u bazi.

Inace iz primera koji si dao, cini se da bi se obicnim sortiranjem karakter polaj to lako postiglo da nisi proglasio nulu desetkom. Racunar tako ne radi. Takav sort moras da radis rucno.
Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Re: Komplikovano sortiranje ???!!! 30.10.2007. u 10:56 · pre 231 mesec #5
Peđa, ne kapiraš, ne sortira po broju nula, već po broju polja čija je vrednost nula. Doduše, nejasno se izrazio.

@vortex77
Nisi me ubedio da ti je baza normalizovana.

Code:

SELECT * FROM tabela
ORDER BY ABS(SIGN(uslov1)) + ABS(SIGN(uslov2)) + ABS(SIGN(uslov3)) + ABS(SIGN(uslov4)) DESC


Kažem, da ti je baza normalizovana, mogao bi da koristiš SUM()
Re: Komplikovano sortiranje ???!!! 30.10.2007. u 10:57 · pre 231 mesec #6
Metapodaci?
Citat:
vortex77: Sto se tice zapisa, propust se nece ponoviti.

Opet nisi dao normalne metapodatke, a hoćeš da ti se napiše ceo SQL upit!
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Komplikovano sortiranje ???!!! 30.10.2007. u 11:21 · pre 231 mesec #7
Hmmm......

Izgleda da se nisam dobro izrazio, pa zarad boljeg objasnjenja dacu tacan izgled tabele.


Code:

+---------+---------------------------------+------+-----+-------------------------+-------+
| Field   | Type                            | Null | Key | Default                 | Extra |
+---------+---------------------------------+------+-----+-------------------------+-------+
| sifvp   | smallint(3) unsigned zerofill   | NO   | MUL | 000                     |       |
| ppozbr  | decimal(23,0) unsigned zerofill | NO   |     | 00000000000000000000000 |       |
| kpozbr  | decimal(23,0) unsigned zerofill | NO   |     | 00000000000000000000000 |       |
| bikzr1  | smallint(3) unsigned zerofill   | NO   |     | 000                     |       |
| bikzr2  | bigint(13) unsigned zerofill    | NO   |     | 0000000000000           |       |
| bikzr3  | smallint(2) unsigned zerofill   | NO   |     | 00                      |       |
| konsif  | varchar(8)                      | NO   | MUL | 00000000                |       |
+---------+---------------------------------+------+-----+-------------------------+-------+

+-------+-------------------------+-------------------------+--------+---------------+--------+----------+
| sifvp | ppozbr                  | kpozbr                  | bikzr1 | bikzr2        | bikzr3 | konsif   |
+-------+-------------------------+-------------------------+--------+---------------+--------+----------+
|   221 | 00000000000000000012345 | 00000000000000000020000 |    245 | 0023002101024 |     04 | 10100001 |
|   221 | 00000000000000000002001 | 00000000000000000002200 |    245 | 0023002101024 |     04 | 10100001 |
|   221 | 00000000000000000000000 | 00000000000000000000000 |    310 | 0000000010039 |     69 | 10100001 |
|   000 | 00000000000000000000000 | 00000000000000000000000 |    000 | 0000000000000 |     00 | 10100001 |
|   221 | 00000000000000000000000 | 00000000000000000000000 |    245 | 0023002101024 |     04 | 10100001 |
|   221 | 00000000000000000000000 | 00000000000000000000000 |    000 | 0000000000000 |     00 | 20202    |
|   222 | 00000000000000000000001 | 00000000000000000001000 |    000 | 0000000000000 |     00 | 10100001 |
|   223 | 00000000000000000000001 | 00000000000000000000200 |    310 | 0000000010039 |     69 | 20202    |
|   221 | 00000000000000000000010 | 00000000000000000000200 |    000 | 0000000000000 |     00 | 0        |
+-------+-------------------------+-------------------------+--------+---------------+--------+----------+


Polja su setovana sa vodecim nulama.

Ovo je spisak "bitnih" polja koja su mi potrebna za kreiranje upita (sortiranja). U tabeli postoje i kljucna polja koja nisam naveo.

Nadam se da ce ovo bar malo razjasniti problem...
Re: Komplikovano sortiranje ???!!! 30.10.2007. u 11:58 · pre 231 mesec #9
Fenomenalno!

Sve radi.... Moram priznati da nisam znao da order by moze raditi na ovaj nacin :))

Hvala!!!!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme