Skomplikowane zapytanie

Odpowiedz Nowy wątek
2011-08-13 20:17
darek000
0

Witam,

Mam prośbę o pomoc w stworzeniu zapytania do bazy danych mySQL. Mam dwie tabele:

tabela1
lokalizacja koszt kraj data
lok1 10 PL 2011-08-01
lok2 20 PL 2011-08-01
lok1 20 DE 2011-08-01
lok2 7 DE 2011-08-01
lok1 12 NL 2011-08-01
lok2 21 ES 2011-08-01
lok1 4 US 2011-08-01
lok2 7 US 2011-08-01

tabela2
kraj1 sprawdz limit
PL 1 28
DE 1 30
NL 0 12
US 1 5
ES 1 20

Chciałbym teraz odnaleźć te kraje w których koszty przekraczają limit. Do tej pory miałem na stałe ustawiony limit dla wszystkich krajów i robiłem to tak:

SELECT SUM(koszt) as koszty, kraj FROM tabela1 WHERE data="xxxx-xx-xx" AND kraj IN (SELECT kraj1 FROM tabela2 WHERE sprawdz=1) GROUP BY kraj HAVING SUM(calls)>25

ale przyszedł czas na zmiany :), czyli w wyniku zapytania miało by wyświetlić
30 PL
11 US
21 ES

pozdrawiam

Pozostało 580 znaków

2011-08-13 23:23
krwq
0

SELECT tabela1., tabela2. FROM tabela1 INNER JOIN tabela2 ON tabela1.kraj=tabela2.kraj1 WHERE .... (tutaj już dowolność)

w powyższym zakładam że kraj w tabeli2 zawsze istnieje, jeśli by nie istniał rekord z tabeli1 nie zostałby wzięty pod uwagę. jeśli ma być wzięty pod uwagę i w przypadku nie istnienia tego powiązania wartości rekordu z tabeli2 miałyby być wypełnione nullami to zamień INNER JOIN na LEFT OUTER JOIN

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0