![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam taki problem, mam 2 tabele
rates - przetrzymuje nazwy walut currencies - przetrzymuje daty, wartości walut i id waluty Wybrałem sobie wszystkie dane takim zapytaniem: select currencies.name, rates.date, rates.rate from currencies, rates where rates.currency_id = currencies.id I teraz chciałbym wyprodukować taką oto tabelkę nazwa waluty | data początkowa | wartość dla daty początkowej | data końcowa | wartość dla daty końcowej jednak nie mogę sobie z tym poradzić bo każdy wiersz z zapytania to osobna tablica. Od razu mówie że w tabeli rates jest kilka odwolan do jednej waluty z tabeli currencies. Sprawa pewnie jest prosta ale jestem początkujący wiec.... Będę wdzięczny za pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
pokaż kod i umieść w bbcode
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
a tabele wyglądają tak:
Ten post edytował psychol1986 10.02.2011, 13:31:22 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
i co dokładnie nie działa, nie zwraca wyników czy co? zapytanie lepiej zrobić z JOIN ale tak chyba też się da, jeżeli nie zwraca wyników to sprawdź czy zapytanie nie zwraca błędu zamień
na |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie zwraca dane tylko każdy wiersz jest jako osobny array, a ja potrzebuję wyświetlić dla każdej z walut date kiedy pierwszy raz wpadla i jaka byla wartosc i date z jaka ostatnio wpadla i jaka jest wartosc oczywiscie to wszystko w jednym wierszu.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie mogę dać group by bo wtedy wyświetli mi wyniki tylko dla jednego dnia a tam dla kazdej waluty jest po 3 różne wartości dla 3 różnych dni.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
ale chcesz wyświetlić tylko początkowe i koncowe czy wszystkie 3?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tylko koncowe i poczatkowa. Tabela powinna wyglądać następująco:
i tak dla kazdej waluty. Z tym że tak jak mówię jest tak że w tabeli rates np. dla polskiego zlotego mamy wartości dla 3 dni, a mi potrzebne są tylko te z najwcześniejszego dnia i z ostatniego jaki wpadł do bazy. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
No dobra a początkowy to jest o id 1 czy w tym momencie początkowy to końcowy -1
chodzi o to że jeśli masz tabele Id Waluta DataPoczątkowa 1 1 02-02-2011 2 1 02-03-2011 3 1 02-04-2011 4 1 02-05-2011 To data początkowa zawsze jest ta z id 1 czyli data początkowa to id=1 a koncowa id=4, czy w tym momencie data początkowa to id=3 a koncowa id=4 Ten post edytował neo1986kk 10.02.2011, 16:36:55 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak dokładnie tak, tabela wygląda tak:
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
reasumując chcesz pobrać id=4 i id=14 w tym konkretnym przpadku, mówimy narazie tylko o PLNach,
Czy pobierasz początkowe id
czyli pobiera Ci: 4 9 14
daje 4 - czyli początkowy
daje 14- czyli koncowy Nie sprawdzałem tego ale o ile pamiętam coś takiego powinno działać w przedstawiony sposób. teraz by trzeba było coś wymyślić dla kazdego currency_id i najlepiej zamknąć w jednym zapytaniu
daje nam początkowe 1 2 3 4
daje nam koncowe 15 14 13 12 11 Dalej trzeba to połączyć w jedno zapytanie i nie wiem właściwie czy Union czy Join bo sam mam problemy tego typu zapytaniami |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
@neo1986kk to co napisałeś jest nie poprawne, ponieważ ORDER BY działa po GROUP BY
do autora: musisz to zrobić przy pomocy 2 zapytań, być może dałoby się pokombinować z podzapytaniami ale to nie zawsze jest dobre wyjście. Jednym zapytaniem wyłapiesz wartość dla najwyższej daty, drugim dla najniższej, wszystko umieszczasz w tablicy a potem sobie to wyświetlisz jak chcesz; mniej więcej coś takiego:
Ten post edytował tehaha 10.02.2011, 18:25:29 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Super wielkie dzieki!!! o to chodziło!!:)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 17:20 |