Ho un piccolo problema con query multitable. (RDBMS: Accesso)SELEZIONA da più tabelle con GROUP BY
Ecco lo schema del database: (solo le tabelle S_Cards, Libri, Autori, Studenti vengono utilizzate in questa query) S_Cards è l'ordine del libro degli studenti (in libreria).
Query: Selezionare l'autore più popolare (s) tra gli studenti e il numero di libri di questo autore, che sono stati ordinati in libreria.
Anche se posso ottenere l'elenco degli ordini + autori come questo in una query:
SELECT
Students.FirstName & " " & Students.LastName AS [Student],
Books.Name AS [Book], Authors.FirstName & " " & Authors.LastName AS [Author]
FROM
Students,
Books,
S_Cards,
Authors
WHERE
S_Cards.ID_Student = Students.ID
AND S_Cards.ID_Book = Books.ID
AND Books.ID_Author = Authors.ID
ORDER BY Authors.LastName
Risultato (mi dispiace, è in russo):
non riesco a capire , perché non riesco a COUNT e GROUP BY in questo modo:
SELECT
Students.FirstName & " " & Students.LastName AS [Student],
Books.Name AS [Book],
COUNT(Authors.FirstName & " " & Authors.LastName) AS [Number of books]
FROM Students, Books, S_Cards, Authors
WHERE
S_Cards.ID_Student = Students.ID
AND S_Cards.ID_Book = Books.ID
AND Books.ID_Author = Authors.ID
GROUP BY 3
Ho un errore che "Authors.FirstName &" "& Authors.LastName" non fa parte della funzione o del gruppo statici.
Domande:
- C'è un modo per farlo query senza JOIN, solo da GROUP BY, SELECT, UNION e come?
- Qual è il problema nella mia seconda query?
Questo _assumes_ stai usando SQL Server (lo sembra). In futuro, contrassegnare sempre le domande con l'RDBMS appropriato. – Ben
Grazie per la risposta. Penso che COUNT (Books.ID) conterebbe il numero di volte in cui è stato ordinato un libro. Devo contare quante volte sono stati ordinati tutti i libri dell'autore, non un libro particolare. RDBMS è accesso. – Aremyst