codez Posted November 12, 2008 Report Share Posted November 12, 2008 Ir tabula: id v1 v2 v3 v4 v5 v6 ... v20 Izvēloties divus id, vajag abus rowu v1-v20 vērtības salikt pirmajā rowā sasummējot. Piemēram: 1 10 10 20 20 ..... 2 15 30 15 30 ..... izpildām "maģisko" kveriju, paliek: 1 25 40 35 50 ...... Vai kādam nav ideja, kā šādu darbību veikt vienā kverijā? (otrā rowa izdzēšana var būt atsevišķs kverijs) Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 12, 2008 Report Share Posted November 12, 2008 Oraclē tas būtu tā (update kā vektors): SQL> create table a (id number, v1 number, v2 number); Table created. SQL> insert into a values (1, 10, 20); 1 row created. SQL> insert into a values (2, 20, 30); 1 row created. SQL> commit; Commit complete. SQL> update a set (v1, v2) = (select a.v1 + a1.v1, a.v2 + a1.v2 from a a1 where id = 2) 2 where id = 1; 1 row updated. SQL> select * from a where id = 1; ID V1 V2 ---------- ---------- ---------- 1 30 50 Tā kā neesi pateicis, kas par DBVS, tad varētu arī ar to beigt ;) , bet nu visdrīzāk, ka Tev ir MySQL (kurš man nav un nevaru notestēt vai augšminētais strādā) un tur varētu būt apmēram šitā (kas savukārt nestrādā Oraclē): update a, a a1 set a.v1 = a.v1 + a1.v1, a.v2 = a.v2 + a1.v2 where a.id = 1 and a1.id = 2; Palasi vairāk piemērus - kur? :O Dokumentācijā, protams, kas to būtu domājis :) Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
codez Posted November 12, 2008 Author Report Share Posted November 12, 2008 (edited) O, tieši tas ko man vajag, nekad nebiju izmantojis UPDATEā references uz vairākām tabulām, tāpēc neināca pat prātā, ka tā var. Gintam paldies. Edited November 12, 2008 by codez Link to comment Share on other sites More sharing options...
bubu Posted November 12, 2008 Report Share Posted November 12, 2008 mja.. kārtējais "programmētājs", kurš nelasa dokumentāciju. Dokumentāciju softa developeri neraksta sava prieka pēc. Tie raksta tāpēc, lai softa lietotāji to lasītu. Šito lieto arī māca katrā sakarīgā grāmatā par SQL pamatiem. Link to comment Share on other sites More sharing options...
codez Posted November 12, 2008 Author Report Share Posted November 12, 2008 (edited) Lasi Mārtiņ visas "tējkannu" grāmatas pēc kārtas, ja tev citu nav ko darīt, es tikmēr pelnīšu mega lielo piķi, sasniedzot rezultātu pēc iespējas ātrāk. P.S. Lai tu pierādītu ka neesi kārtējais "programmētājs", gaidu tavu 100% risinājumu šim uzdevumam: http://www.lio.lv/olimps/uzdevumi.php?show=20 Edited November 12, 2008 by codez Link to comment Share on other sites More sharing options...
andrisp Posted November 12, 2008 Report Share Posted November 12, 2008 codez, lai arī nevaru pārmest, ka neiedomājies ieskatīties dokumentācijā, tomēr tavas atbildes ir vienkārši jautras :) Link to comment Share on other sites More sharing options...
bubu Posted November 12, 2008 Report Share Posted November 12, 2008 Nekad neesmu apgalvojis, ka māku visus olimpa uzdevumus atrisināt. Atšķirība no tavas lielīšanās par tiem. Taču kā redzams SQL pamatus, kuri pat online manuālī uzrakstīti, izlasīt un apgūt tu nespēj. Te nu tev ir tā mega lielā piķa kāšana - kamēr citi pamatus zin un sen jau tos pielieto praktiski, tu vari pa savu olimpu dzīvoties (nevajag to saprast ka tas ir slikti) un tērēt savu laiku vienkāršu jautājumu uzdošanai forumā (to gan vajag saprast slikti). Vēl ļaunāk - tu tos pamatus nemaz pats nemāki atrast. Tev tas pašam nešķiet līdz absurdam smieklīgi? Bet nopietni - nopērc grāmatu un palasi. Tas par sliktu nekad nenāk Link to comment Share on other sites More sharing options...
codez Posted November 12, 2008 Author Report Share Posted November 12, 2008 (edited) bubu, kamēr tu pārlasi kārtējo manuāli, es jau esmu uztaisījis pusi megapeļņu nesoša portāla, kad rodas kāda aizture, tad pameklēju webā vai paprasu forumā, kamēr citi atbild (paldies viņiem par to), tikmēr taisu citas lietas, kur man aizķeršanās nav. Kad atbilde iegūta, turpinu iepriekšējo. Paies pāris mēneši un es būšu uztaisījis super giga mega piķi pelnošo portālu (to vajag uztvert labi), bet tu būsi izlasījis 37 manuāļus un 14 grāmatas "čainikiem" (to arī vajag uztvert labi, jo savādāk jau nebūs neviens, kurš atbild uz maniem jautājumiem). Tad redzēsim, kurš priecāsies pēdējais. Edited November 12, 2008 by codez Link to comment Share on other sites More sharing options...
Recommended Posts