[SQLite] Problem z zapytaniem

0

Witam!
Robię projekt dla którego muszę stworzyć prostą bazę danych w SQLite. W trakcie tworzenia bazy napotkałem na pewien problem.
Mam dane dwie tabele:

  1. pierwsza tabela Maszyna:
Maszyna
ID Kod
1  M1
2  M2
  1. druga tabela Stan:
Stan
ID Maszyna Stan Data
1  1       A    2009-12-05
2  1       B    2009-12-06
3  2       C    2009-12-03
4  2       B    2009-12-02
...

Chodzi mi o to aby stworzyć widok który zawierałby aktualny stan dla każdej maszyny. Wynik mógłby wyglądać mniej więcej tak:

Maszyna Stan
M1      B
M2      C

Próbowałem zagnieżdżać polecenie SELECT ale nie udało mi się osiągnąć oczekiwanego wyniku. Może ktoś z Was będzie mi w stanie pomóc?
Pozdrawiam. Marcin.

0

nie wiem czy o to chodzi

SELECT Maszyna.kod,Stan.Stan
FROM Maszyna INNER JOIN stan ON Maszyna.ID=Stan.Maszyna;
0

Nie bardzo :(. Twoje zapytanie zwraca wynik:

Kod Stan
M1  A
M1  B
M2  C
M2  B

A mi chodzi o to aby każda maszyna była wymieniona tylko raz.

0

aha to może pomoże to

SELECT Maszyna.Kod,Stan.Stan
FROM Maszyna INNER JOIN stan ON Maszyna.ID=Stan.Maszyna
GROUP BY Maszyna.Kod;

bo też dziwnie ,że w twojej bazie jedna maszyna ma 2 stany i nie wiadomo który wybrać czy co :P

0

Ja nic nie chcę mówić, ale chyba kluczowe słowo to AKTUALNY:

SELECT Maszyna.Kod,Stan.Stan
FROM Maszyna where Maszyna.data = date() INNER JOIN stan ON Maszyna.ID=Stan.Maszyna

Czy jakoś tak. Zależy jak trzymasz datę w bazie .

0

w sumie słusznie :)

0

Dziękuje wszystkim za pomoc. Szczególnie koledze Koziołkowi za to że podsunął mi pomysł na rozwiązanie :):

SELECT Maszyna.Kod, Stan.Stan 
FROM Maszyna, Stan WHERE Stan.Data = (SELECT max(Data) FROM Stan WHERE Maszyna = Maszyna.ID);

Pozdrawiam. Marcin

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