[Access] porównywanie danych w dwóch kolumnach

0

Witam, mam tabele, która przedstawia wyniki meczów piłkarskich (gospodarz, gość, wynik gosp, wynik gościa). Chciałbym na tej podstawie uzyskać informacje ile meczów wygrała dana drużyna, ile zdobyła i straciła bramek itp. W jaki sposób można to zrobić ?

SELECT Mecz.Data, Mecz.Gospodarz, Mecz.Gosc
FROM Mecz
WHERE (((Mecz.[Wynik Goscia])=1) AND (("Wynik Goscia")>"Wynik Gospodarza")) OR (((Mecz.[Wynik Gospodarza])=1) AND (("Wynik Gospodarza")<"Wynik Goscia"))
GROUP BY Mecz.Data, Mecz.Gospodarz, Mecz.Gosc;
 
0

select Gospodarz,
sum(Zwyciestw) as Zwyciestw,
sum(Remisow) as Remisow,
sum(Porazek) as Porazek,
sum(BramkiStrzelone) as BramkiStrzelone,
sum(BramkiStracone) as BramkiStracone
from
(
select Gospodarz,
sum(case when [Wynik Gospodarza] > [Wynik Goscia] then 1 else 0 end) as Zwyciestw,
sum(case when [Wynik Gospodarza] = [Wynik Goscia] then 1 else 0 end) as Remisow,
sum(case when [Wynik Gospodarza] < [Wynik Goscia] then 1 else 0 end) as Porazek,
sum([Wynik Gospodarza]) as BramkiStrzelone,
sum([Wynik Goscia]) as BramkiStracone
from Mecz
group by Gospodarz
union all
select Gosc,
sum(case when [Wynik Goscia] > [Wynik Gospodarza] then 1 else 0 end) as Zwyciestw,
sum(case when [Wynik Goscia] = [Wynik Gospodarza] then 1 else 0 end) as Remisow,
sum(case when [Wynik Goscia] < [Wynik Gospodarza] then 1 else 0 end) as Porazek,
sum([Wynik Gospodarza]) as BramkiStrzelone,
sum([Wynik Goscia]) as BramkiStracone
from Mecz
group by Gospodarz
)
group by Gospodarz

0

To co wyżej napisałaś rzeczywiście niewiele mi mówi. Poniżej wklejam to co do tej pory udało mi się uzyskać. Kwerenda wyświetla wszystkie mecze w których wygrała Fc Barcelona. Po pierwsze jak to teraz zliczyć ? Po drugie jak rozszerzyć na wszystkie drużyny (albo przynajmniej na cztery wybrane). I jak policzyć w takim razie ilu meczów Barcelona nie wygrała (lub zremisowała).

SELECT Mecz.Data, Mecz.Gospodarz, Mecz.Gosc, Mecz.[Wynik Gospodarza], Mecz.[Wynik Goscia]
FROM nazwa_klubu INNER JOIN Mecz ON nazwa_klubu.IdKlubu = Mecz.Gospodarz
GROUP BY Mecz.Data, Mecz.Gospodarz, Mecz.Gosc, Mecz.[Wynik Gospodarza], Mecz.[Wynik Goscia], nazwa_klubu.nazwa_klubu
HAVING (((nazwa_klubu.nazwa_klubu) Like "Fc B*") AND (([Mecz]![Wynik Gospodarza])>[Mecz]![Wynik Goscia]) AND (([Mecz]![Wynik Goscia])<[Mecz]![Wynik Gospodarza])) OR ((([Mecz]![Wynik Gospodarza])<[Mecz]![Wynik Goscia]) AND (([Mecz]![Wynik Goscia])>[Mecz]![Wynik Gospodarza]));
 
0

co znaczy niewiele ci mowi? po twoich kwerendach wnioskuje ze cos tam ogarniasz z sql, wiec przeanalizuj sobie moje proste zapytanie, ktore sklada sie z dwóch zapytan polaczonych union all, a nastepnie ich wynich, przez zapytanie nadrzedne, jest zsumowany

mam wrazenie ze nie umiesz poprawnie zwizualizowac sobie powiazania miedzy danymi, wiec masz tabele z klubami (nazwa_klubu) - jeden rekord, jeden klub, natomiast w tabeli z wynikami (mecz) masz informacje w jednym rekordzie o dwoch klubach, wiec w ogole zle sie zabierasz za rozwiazanie problemu

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