![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 14.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Proszę o pomoc w rozwiązaniu następującego problemu: Mam tabelę Producent o następującej strukturze: nazwa|typ np. A|Samochód A|Rower B|Telewizor C|Rower C|Samochód C|Telewizor E|Samochód E|Samochód E|Rower Jak spośród takiego zestawu danych, wybrać tylko tych producentów, którzy produkują samochody i rowery tj tutaj A i E, schemat tabeli jest w uproszczeniu kolejne kolumny zawierają inne typy danych. Proszę o nie pisanie, że projekt tabeli jest zły i kolumna typ powinna zawierać id do innej tabeli. Uczę się dopiero SQL i proszę o wyrozumiałość. Ja wpadłem na coś takiego: SELECT nawa FROM Producent WHERE typ IN('Samochód','Rower') ale takie zapytanie jest błędne, ponieważwyświetla mi też producenta C. |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
To zapytaj o A i E a nie o Samochód i Rower o.0
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 14.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie moge, bo całe zadanie jest bardziej skomplikowane, to tylko jego ostatni fragment, z którym mam problem, chodzi o to, że nie mogę zapytać tylko o A i E, bo taki jest wynik, który ma wynikać z innych założeń.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Są 3 opcje
1) masz złe dane w tabeli 2) nie zrozumiałeś zadania 3) niedostatecznie jasno wyjaśniłeś o co Ci jednak chodzi Skoro widzisz, że zadajesz prawidłowe zapytanie (bo tak rzeczywiście jest, tylko oczekiwania inne) a wyniki Ci się nie zgadzają to powiedz, która z powyższych opcji Ci pasuje. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 14.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak racja opcja numer 3
to jest ogolnie zadanie ze stronki http://sql-ex.ru Jest tam napisane: Exercise: 25 Find the printer makers which also produce PCs with the lowest RAM and the highest-speed processor among PCs with the lowest RAM. Result set: maker. To co pogrubione to kwestia mojego zapytania/problemu a tabela maker wyglada tak: maker model type A 1232 PC A 1233 PC A 1276 Printer A 1298 Laptop A 1401 Printer A 1408 Printer A 1752 Laptop B 1121 PC B 1750 Laptop C 1321 Laptop D 1288 Printer D 1433 Printer E 1260 PC E 1434 Printer E 2112 PC E 2113 PC Moje zapytanie wyglada tak: Select maker From Product pr Where pr.model In (Select pct.model From ( Select model,Max(speed) as mx From pc Where ram=(Select Min(ram) From pc) Group By model ) as pct ) i na pierwszej bazie daje poprawny wynik, ale na drugiej troche zly tj o 3 rekordy za duzo |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 00:43 |