Jump to content
php.lv forumi

Divu rowu vērtību sasumēšana vienā rowā


codez

Recommended Posts

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

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

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

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 by codez
Link to comment
Share on other sites

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

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 by codez
Link to comment
Share on other sites

×
×
  • Create New...