NBS Posted July 14, 2008 Report Share Posted July 14, 2008 (edited) Ir te man tāds asp, bet tas nekas. Kas māk sql, būtu ļoti priecīgs, ja kāds varētu palīdzēt. Problēma tāda, ka ir ielas, kas ir ar vienādiem nosaukumiem, dažādās ēkās. Bet rādās pie vienas ēkas vienādas ielas. Selektojot ēku pie ēkas gribu pārbaudīt, piemēram, vai nav vienādi ieraksti un neizvadīt tos. Piemēram, ir Čaka iela un Čaka iela, bet izvada tikai vienu ierakstu, neviss divus. <% query = "SELECT s.streetID AS value, s.NAME AS text FROM streets AS s"; if ((new String(Request("rajons"))) != "undefined") { query += " LEFT JOIN Buildings AS b ON b.street_ID = s.streetID WHERE b.mkregion = "+ Request("rajons") +" AND s.NAME = s.NAME OR s.streetID NOT IN (SELECT street_ID FROM Buildings)"; } query += " GROUP BY s.streetID, s.NAME ORDER BY s.NAME"; exe = runSQL(query); while (exe.Eof != true) { Response.Write("<option value="+ exe("value") +">"+ exe("text") +"</option>"); exe.MoveNext(); } %> Edited July 14, 2008 by NBS Link to comment Share on other sites More sharing options...
andrisp Posted July 14, 2008 Report Share Posted July 14, 2008 Problēma aprakstīta vienkārši burvīgi. Speciāli centies tā, lai neko nevar saprast ? Link to comment Share on other sites More sharing options...
NBS Posted July 14, 2008 Author Report Share Posted July 14, 2008 Problēma aprakstīta vienkārši burvīgi. Speciāli centies tā, lai neko nevar saprast ? Vārdu sakot vēlos, lai nerāda man vienādas ielas Piemēram: Pašlaik rāda šādi: <option>Stirnu iela</option> <option>Čaka iela</option> <option>Čaka iela</option> <option>Zvaigznes iela</option> Vēlos, šādi: <option>Stirnu iela</option> <option>Čaka iela</option> <option>Zvaigznes iela</option> Cerams, būs saprotams, ko vēlos. Link to comment Share on other sites More sharing options...
andrisp Posted July 14, 2008 Report Share Posted July 14, 2008 (edited) GROUP BY SELECT DISTINCT Edited July 14, 2008 by andrisp Link to comment Share on other sites More sharing options...
NBS Posted July 14, 2008 Author Report Share Posted July 14, 2008 GROUP BY SELECT DISTINCT Īsti nesapratu ? Link to comment Share on other sites More sharing options...
andrisp Posted July 14, 2008 Report Share Posted July 14, 2008 Pameklē googlē: SQL SELECT DISTINCT. MySQL tāds ir, nezinu kā citās. Link to comment Share on other sites More sharing options...
Gints Plivna Posted July 14, 2008 Report Share Posted July 14, 2008 Īsti nesapratu ? Rakstā vienkāršs SQL Select teikums skaties piemēru nr 2. Iespējams, ka Tev noderētu izlasīt visu rakstu ;) Un jā, ja vēlies lai kāds tavā vietā uzraksta SQL teikumu (kas pēc idejas diez ko labi nav) tad vismaz iedod tabulu specifikācijas, un arī to ko vēlies dabūt. Cilvēki nestradā ar tavām tabulām, tici man viņi nezin tavu tabulu nosaukumus, kolonu nosaukumus, datus ko vēlies dabūt un datus kas ir tabulā. Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
NBS Posted July 15, 2008 Author Report Share Posted July 15, 2008 Diemžēl manā gadijumā nav unikālie ieraksti :( s.streetID ir dažādi id, bet s.NAME man dublicējas. s.Name es nevēlos, lai rāda tos dublikātus. Meiģināsu vēlreiz paskaidrot savu sql: http://paste.php.lv/7628?lang=asp Man vajadzīga tāda lieta, lai Mana tabula un šādu izvadi veic mans sql: IelasID | IelasNosaukums 1 Čaka iela 2 Čaka iela 3 Blaumaņa iela 4 Ieriķu iela 5 Bauskas iela 6 Bauskas iela 7 G.Astras iela 8 Rudens iela Vēlos: IelasID | IelasNosaukums 1 Čaka iela 3 Blaumaņa iela 4 Ieriķu iela 5 Bauskas iela 7 G.Astras iela 8 Rudens iela Lūdzu, palīdziet. Link to comment Share on other sites More sharing options...
andrisp Posted July 15, 2008 Report Share Posted July 15, 2008 Tabula: CREATE TABLE `streets` ( `id` int(10) unsigned NOT NULL auto_increment, `street` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) Kverijs: SELECT DISTINCT s.street, (SELECT id FROM streets WHERE street = s.street ORDER BY id ASC LIMIT 1 ) as id FROM streets s; Link to comment Share on other sites More sharing options...
NBS Posted July 15, 2008 Author Report Share Posted July 15, 2008 Tabula: CREATE TABLE `streets` ( `id` int(10) unsigned NOT NULL auto_increment, `street` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) Kverijs: SELECT DISTINCT s.street, (SELECT id FROM streets WHERE street = s.street ORDER BY id ASC LIMIT 1 ) as id FROM streets s; Diemžēl, nepalīdz manā gadijumā, bet, paldies, par to pašu. Man nav nekādas iespējas pielietot DISTINCT. Es pat nezinu, laikam, ar kaut kādiem smirdīgiem if'iem tur jāņemas, jo nav poņas kā to dabūt gatavu ;( Stūlbais MS SQL :( Link to comment Share on other sites More sharing options...
Grey_Wolf Posted July 15, 2008 Report Share Posted July 15, 2008 (edited) Diemžēl manā gadijumā nav unikālie ieraksti :(s.streetID ir dažādi id, bet s.NAME man dublicējas. Tas nav normali .... Katram ielas nosaukumam buutu jabuut savam ID ... tas ir ... tabulaa saglabaa ielas nosaukumu (kas pats par sevi ir Unikaals) + ID .... --- Vadot ieksaa adresi , parbaudi vai taads ielas nosaukums jau neeksistee, ja Eksistee njem no Tabulas (peec ID) , ja neeksistee tad Pievieno un talak tas pats kas ieprieks ... --- edit: vari tachu parbaudiit ar DISTINCT vai s.name nedublejas , nevis peec s.ID ... Edited July 15, 2008 by Grey_Wolf Link to comment Share on other sites More sharing options...
Gints Plivna Posted July 15, 2008 Report Share Posted July 15, 2008 Tātad 1kārt GreyWolf pareizi saka, ka šādi dati izskatās ļoti aizdomīgi, katrā ziņā šāds tabulu dizains vedināt vedina uz gļukiem. 2kārt - vai tiešām ir tik grūti jau pašā sākumā lieliem burtiem uzrakstīt par _______KĀDU DATUBĀZI_________ iet runa???? var jau būt ka no asp ar neko citu kā MS SQL sakonktēt nevar bet man par to nekas nav zināms. Vobše tagad kad beidzot no Tevis ir izspiests ko Tev tiešām vajag un kad Tu nejauši atklāji mega noslēpumu, ka Tev tomēr ir MS SQL, tad vari mēģināt šādi: CREATE TABLE streets ( id int NOT NULL, street varchar(255) NOT NULL, PRIMARY KEY (id) ); insert into streets values (1, 'Čaka'); insert into streets values (2, 'Čaka'); insert into streets values (3, 'Marijas'); insert into streets values (4, 'Antonijas'); insert into streets values (5, 'Antonijas'); select id, street from ( select row_number() over (partition by street order by street, id) rn, id, street from streets ) as q where rn = 1 order by id; 1 Čaka 3 Marijas 4 Antonijas Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
Gints Plivna Posted July 15, 2008 Report Share Posted July 15, 2008 Ak jā un protams, ka šitais brīnums strādās tikai uz 2005 SQL servera un 2008 (kuram vēl produkcijas versija nav), iespējams, ka 2000 nekas nesanāks... Yeahhhh atliek vēlreiz grūti nopūsties - kāpēc kāpēc ļaudis slēpj šo info - DB+Versija? Vai tad ir tik grūti to jau pašā sākumā skaidri pateikt? Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
NBS Posted July 15, 2008 Author Report Share Posted July 15, 2008 Nu jā, sorry liels, neesmu pieredzējis infu mest iekšā. Jā, ir MS SQL 2004 serveris. Gint ļoti smuks kods, bet, diemžēl, ir tāda ķibele: " 'row_number' is not a recognized function name. " Link to comment Share on other sites More sharing options...
andrisp Posted July 15, 2008 Report Share Posted July 15, 2008 AFAIK, tādas versijas nemaz nav. Link to comment Share on other sites More sharing options...
Recommended Posts