ďťż
 
[mysql] da =?ISO-8859-2?Q?si=EA_w_jednym_zapytaniu=3F?= ďťż
 
[mysql] da =?ISO-8859-2?Q?si=EA_w_jednym_zapytaniu=3F?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[mysql] da =?ISO-8859-2?Q?si=EA_w_jednym_zapytaniu=3F?=



Gerwazy - 13-07-2006 01:46
[mysql] da =?ISO-8859-2?Q?si=EA_w_jednym_zapytaniu=3F?=
  mam tabele:

tabela1

Id | numery_zlecen
1 | 1,2
2 | 3,4,5

tabela2

Id | koszt
1 | 20
2 | 24
3 | 40
4 | 11
5 | 100

opierając się na tabela1 w wyniku chciałbym otrzymać dodatkowe pole suma:

Id | numery_zlecen | suma
1 | 1,2 | 44
2 | 3,4,5 | 151

da się to zrobić w jednym zapytaniu?





Jacek Stawicki - 13-07-2006 01:46

 
Użytkownik "Gerwazy" <gerwazy@nomail.no> napisał w wiadomości
news:e93il3$m72$1@atlantis.news.tpi.pl...

> da się to zrobić w jednym zapytaniu?

imo nie

ps.
po to wymyslono struktury relacyjne by czerpac z nich korzysci :)




Piotr =?iso-8859-2?Q?Kuli=F1ski?= - 14-07-2006 02:46

  Roku Pańskiego 2006,
na pl.comp.bazy-danych,
człowiek (??) *Gerwazy* napisał(a):

> mam tabele:
>
> tabela1
>
> Id | numery_zlecen
> 1 | 1,2
> 2 | 3,4,5
>
> tabela2
>
> Id | koszt
> 1 | 20
> 2 | 24
> 3 | 40
> 4 | 11
> 5 | 100
>
> opierając się na tabela1 w wyniku chciałbym otrzymać dodatkowe pole suma:
>
> Id | numery_zlecen | suma
> 1 | 1,2 | 44
> 2 | 3,4,5 | 151
>
> da się to zrobić w jednym zapytaniu?

SELECT sum(T2.koszt) as suma
FROM tabela1 T1, tabela2 T2
WHERE T2.id IN (T1.numery_zlecen);

może tak, ale nie testowane :)

--
pozdrawiam
piotr, gg i skype w X-nagłówku posta, e-mail: zmień "wpw" na "wp"
Nic nie stoi na przeszkodzie, co by sobie przeszkody nie stworzyć :)




Gerwazy - 14-07-2006 02:46

  Piotr Kuliński napisał(a):

> SELECT sum(T2.koszt) as suma
> FROM tabela1 T1, tabela2 T2
> WHERE T2.id IN (T1.numery_zlecen);
>
> może tak, ale nie testowane :)

To daje tylko jedną kwotę zbiorczo zamiast tabeli jak w zapytaniu.
Wygląda na to, że się nie da czyli pozostaje dodatkowe pytanie w pętli.
Nie ma co oszczędzać na relacyjnych tabelach, to prawda :)





Piotr =?ISO-8859-2?Q?Kuli=F1ski?= - 15-07-2006 01:25

  Gerwazy wrote:

> Piotr Kuliński napisał(a):
>
>> SELECT sum(T2.koszt) as suma
>> FROM tabela1 T1, tabela2 T2
>> WHERE T2.id IN (T1.numery_zlecen);
>>
>> może tak, ale nie testowane :)
>
> To daje tylko jedną kwotę zbiorczo zamiast tabeli jak w zapytaniu.
> Wygląda na to, że się nie da czyli pozostaje dodatkowe pytanie w pętli.
> Nie ma co oszczędzać na relacyjnych tabelach, to prawda :)
te tabele ni ewyglądają na relacyjne, przynajmniej nie tabela1

to może tak, ale gdybam :)
SELECT T1.id, sum(T2.koszt) as suma
FROM tabela1 T1, tabela2 T2
WHERE T2.id IN (T1.numery_zlecen)
GROPU BY T1.id;

--
pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień "wpw" na "wp"
piotr "Nic nie stoi na przeszkodzie, co by przeszkody sobie nie
stworzyć :)"




robert4720@vp.pl - 15-07-2006 01:26

  > mam tabele:
>
> tabela1
>
> Id | numery_zlecen
> 1 | 1,2
> 2 | 3,4,5
>
> tabela2
>
> Id | koszt
> 1 | 20
> 2 | 24
> 3 | 40
> 4 | 11
> 5 | 100
>
>
> opierając się na tabela1 w wyniku chciałbym otrzymać dodatkowe pole suma:
>
> Id | numery_zlecen | suma
> 1 | 1,2 | 44
> 2 | 3,4,5 | 151
>
> da się to zrobić w jednym zapytaniu?

Witam serdecznie

tak patrząc na to wydaje mi sie że wystarczyła by jedna tabelka która by
wyglądała tak

id (opcjonalnie), nr_zlecenia , koszt

gdybyć chciał mieć na to samo zlecenie kilka kosztów.

jeżeli zlecenie ma jeden koszt to wystarczy zrobić nr zlecenia jako primary key

nr_zlecenia primary key , koszt

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl




Gerwazy - 16-07-2006 01:04

  > id (opcjonalnie), nr_zlecenia , koszt
>
> gdybyć chciał mieć na to samo zlecenie kilka kosztów.
>
> jeżeli zlecenie ma jeden koszt to wystarczy zrobić nr zlecenia jako primary key
>
> nr_zlecenia primary key , koszt

No niestety właśnie nie może tak być. Bo te zlecenia z tabela1
to są jakby pogrupowane podzlecenia z tabela2. Dwie tabele muszą
funkcjonować osobno. Mogłem dodać wręcz trzecią relacyjną ale ja dałem
dla liczenia sumy po prostu podzapytanie w pętli wyglądające tak:

$zapytanie = "SELECT numery_zlecen FROM tabela1";
$wykonaj = mysql_query ($zapytanie);
while ($wiersz=mysql_fetch_array ($wykonaj)) {
$zapytanie_suma="SELECT sum(koszt) as koszt FROM tabela2 WHERE Id IN
({$wiersz['numery_zlec']})";
....
}
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Gdzie MySQL 4.1, a gdzie 5.0? [MS SQL] "set names" (mySQL) w MS SQL oracle -> oracle lub oracle -> mysql replikacja - programy [MySQL] Zwrot tego, co pasuje i nie pasuje :-/ [pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1 [mysql] galeria zdjec - numerowanie zdjec [mysql] CONCAT agregujący, ale nie GROUP_CONCAT() mysql data 0000-00-00 na koniec [MySQL] Problem z zapisem danych w bazie danych jak przenieesc czesc tabeli do innej tabeli MySQL
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lubiatowo.xlx.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com