[mysql] jak zbudowac zapytanie?
arcuser - 13-11-2006 00:45
[mysql] jak zbudowac zapytanie?
Witam,
mam w bazie tabelę składającą się z wielu kolumn i wielu wierszy: Id, A, B, C, .... , NN 1, 1, 1, 1, ....., 1 2, 2, 2, 2, ....., 2 .., ., ., ., ....., . .., ., ., ., ....., .
Czy jest możliwość takiego zadania zapytania do bazy (MySQL 5.0.22 z PHP), żeby otrzymać w ww tabeli nowy wiersz (powiedzmy z id=9999) zawierający sumy wszyskich kolumn?
Id, A, B, C, .... , NN 1, 1, 1, 1, ....., 1 2, 2, 2, 2, ....., 2 .., ., ., ., ....., . .., ., ., ., ....., . 9999, suma A, suma B, suma C, ....., suma NN
TIA
Pozdrawiam -- arcuser
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
bart - 13-11-2006 00:45
arcuser napisał(a): > Witam, > > mam w bazie tabelę składającą się z wielu kolumn i wielu wierszy: > Id, A, B, C, .... , NN > 1, 1, 1, 1, ....., 1 > 2, 2, 2, 2, ....., 2 > ., ., ., ., ....., . > ., ., ., ., ....., . > > Czy jest możliwość takiego zadania zapytania do bazy (MySQL 5.0.22 z PHP), żeby > otrzymać w ww tabeli nowy wiersz (powiedzmy z id=9999) zawierający sumy > wszyskich kolumn? > > Id, A, B, C, .... , NN > 1, 1, 1, 1, ....., 1 > 2, 2, 2, 2, ....., 2 > ., ., ., ., ....., . > ., ., ., ., ....., . > 9999, suma A, suma B, suma C, ....., suma NN > > TIA > > Pozdrawiam > -- > arcuser
a czy czytales wczesniej o poleceniu sum???? sproboj tak:
insert into tabela select 999, suma(a), suma(b), suma(c) .... from select tabela;
bartek.
bart - 13-11-2006 00:45
arcuser napisał(a): > Witam, > > mam w bazie tabelę składającą się z wielu kolumn i wielu wierszy: > Id, A, B, C, .... , NN > 1, 1, 1, 1, ....., 1 > 2, 2, 2, 2, ....., 2 > ., ., ., ., ....., . > ., ., ., ., ....., . > > Czy jest możliwość takiego zadania zapytania do bazy (MySQL 5.0.22 z PHP), żeby > otrzymać w ww tabeli nowy wiersz (powiedzmy z id=9999) zawierający sumy > wszyskich kolumn? > > Id, A, B, C, .... , NN > 1, 1, 1, 1, ....., 1 > 2, 2, 2, 2, ....., 2 > ., ., ., ., ....., . > ., ., ., ., ....., . > 9999, suma A, suma B, suma C, ....., suma NN > > TIA > > Pozdrawiam > -- > arcuser >
a czy czytales wczesniej o funkcji sum() ????? sproboj tak: insert into tabela select 999, sum(a), sum(b), sum(c) ... from tabela;
bartek.
arcuser@poczta.onet.pl - 13-11-2006 00:45
Witam,
Dzięki za odpowiedź.
> insert into tabela select 999, sum(a), sum(b), sum(c) ... from tabela;
Problem jest tego typu, że kolumn jest sporo (kilkadziesiąt - zmienna ilość) i szukam możliwości sumowania wszystkich kolumn na raz do nowego wiersza - być może jest możliwość sumowania z uzyciem "*" zamiast określania poszczególnych kolumn? Przyznam szczerze, że temat jest dla mnie dośc nowy, o ile z prostymi rzeczami sobie radzę, to z tym od dłuższego czasu nie mogę sobie poradzić.
Pozdrawiam -- arcuser
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Matt Z - 13-11-2006 00:45
arcuser@poczta.onet.pl napisał(a): > Problem jest tego typu, że kolumn jest sporo (kilkadziesiąt - zmienna ilość) i > szukam możliwości sumowania wszystkich kolumn na raz do nowego wiersza - być > może jest możliwość sumowania z uzyciem "*" zamiast określania poszczególnych > kolumn?
ZTCW nie da rady. IMHO projekt bazy do dupy.
-- Matt Z
Student PRZ - 13-11-2006 00:45
arcuser napisał(a): > Witam, > > mam w bazie tabelę składającą się z wielu kolumn i wielu wierszy: > Id, A, B, C, .... , NN > 1, 1, 1, 1, ....., 1 > 2, 2, 2, 2, ....., 2 > ., ., ., ., ....., . > ., ., ., ., ....., . > > Czy jest możliwość takiego zadania zapytania do bazy (MySQL 5.0.22 z PHP), żeby > otrzymać w ww tabeli nowy wiersz (powiedzmy z id=9999) zawierający sumy > wszyskich kolumn? > > Id, A, B, C, .... , NN > 1, 1, 1, 1, ....., 1 > 2, 2, 2, 2, ....., 2 > ., ., ., ., ....., . > ., ., ., ., ....., . > 9999, suma A, suma B, suma C, ....., suma NN > > TIA > > Pozdrawiam > -- > arcuser > > -- > Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Napewno jest sposób
Ja bym to rozwiązał w sposób następujący:
do tablicy o wymiarze liczba nagłówków kolumn wpisał nagłówki kolumn wykonał selekta który posumuje wszyskie wartości String[] kolumny // jakaś tam tabela do przechowywania kolumn treść selekta można wykonać w pętli napisze tak jakby w C String kolumny for (int i=0; i<liczbaKolum;i++) kolumny = kolumny + "sum("+ kolumna[i]+")"","; // pozostaje problem przecinka na końcu
potem
String zapytanie ="select "+ kolumny + "from tabela"; i uruchomić tego selekta wynikiem zapytania będzie jeden wiersz
z tego wyniku znowu w pętli pobrać wartości do stringa czy czegoś tam innego np. strumienia
String zapytanie="insert into table values"+ kolumny;
Kwestia jak to zapisać w PHP :-)
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.platanvarne633.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|