• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Access / SQL problem z zapytaniem

Fiszki IT
Fiszki IT
+1 głos
97 wizyt
pytanie zadane 17 marca w SQL, bazy danych przez Patryk2001 Początkujący (470 p.)

Dobry wieczór, staram się przygotować do matury z informatyki, aktualnie uczę się SQL, czy mógłby ktoś pomóc z jednym zapytaniem, bo już próbuje każdego sposobu ale mi nie wychodzi, za wszelką pomoc będę wdzięczny. 

Matura informatyka rok 2017 czerwiec

Zadanie:

Wyszukaj wszystkie programy z rodzaju edytor dokumentow tekstowych, które są zawarte przynajmniej w dwóch różnych pakietach. Utwórz zestawienie zawierające dla każdego z tych programów: jego nazwę, cenę oraz liczbę pakietów, w których jest zawarty.

mój kod:

SELECT Programy.program, Programy.cena, COUNT(Zestawy.Id_pakietu)
FROM Programy
INNER JOIN Zestawy ON Programy.Id_programu = Zestawy.Id_programu
WHERE rodzaj = "edytor dokumentow tekstowych"
GROUP BY Zestawy.Id_programu
HAVING COUNT(Zestawy.Id_pakietu) >= 2

 

 

2 odpowiedzi

+2 głosów
odpowiedź 17 marca przez Michał Muzyka Pasjonat (24,160 p.)
wybrane 20 marca przez Patryk2001
 
Najlepsza

Dzień dobry,
podczas wywołania funkcji agregującej, przy słowie kluczowym select nie mogą pojawić się nazwy kolumn po których nie występuje grupowanie, według mnie zadanie trzeba wykonać przy użyciu zagnieżdżonego zapytania (jeżeli kolumna nazwa programu nie jest unikalna), czyli najpierw obliczamy liczbę wystąpień danego programu w danych pakietach potem dołączamy do tego ID nazwę programu oraz jego cenę
 

SELECT p.program, p.cena, T.Liczba  FROM Programy AS p INNER JOIN (SELECT Zestawy.Id_programu, COUNT(Zestawy.Id_pakietu) AS Liczba
FROM Programy
INNER JOIN Zestawy ON Programy.Id_programu = Zestawy.Id_programu
WHERE rodzaj = "edytor dokumentow tekstowych"
GROUP BY Zestawy.Id_programu
HAVING COUNT(Zestawy.Id_pakietu) >= 2) AS T ON p.Id_programu = T.Id_programu

Nie mam dostępu do tejże bazy a więc nie wiem czy jest to rozwiązanie optymalne jednak powinno działać,
pozdrawiam.

1
komentarz 17 marca przez Patryk2001 Początkujący (470 p.)
Wow, dziękuje bardzo, odpowiedź poprawna. Już się biorę za analizę
+1 głos
odpowiedź 18 marca przez Paweł Nyczkowski Obywatel (1,420 p.)

Witam,

 sprawdź proszę czy poniższe pytanie zadziała , dawno nie pisałem zapytań w Accessie
zapytanie powinno być poprawne o ile cena za program nie jest zależna od pakietu
 

SELECT P.program, P.cena, COUNT(Z.Id_pakietu) as [ilosc pakietow]
FROM Programy as P
    INNER JOIN Zestawy as Z ON P.Id_programu = Z.Id_programu
WHERE rodzaj = "edytor dokumentow tekstowych"
GROUP BY Z.Id_programu,P.program, P.cena
HAVING COUNT(Z.Id_pakietu) >= 2

 

komentarz 20 marca przez Patryk2001 Początkujący (470 p.)
Jest Ok. działa

Podobne pytania

0 głosów
1 odpowiedź 128 wizyt
pytanie zadane 19 sierpnia 2017 w SQL, bazy danych przez Melchior Obywatel (1,300 p.)
0 głosów
1 odpowiedź 40 wizyt
pytanie zadane 11 lutego w Systemy operacyjne, programy przez Niebieski_Zerg Użytkownik (610 p.)
0 głosów
1 odpowiedź 173 wizyt
pytanie zadane 16 lutego 2017 w SQL, bazy danych przez Blue Obywatel (1,180 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

84,762 zapytań

133,562 odpowiedzi

296,004 komentarzy

56,018 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...