mikemayster ha scritto:
Vorrei fare questa query ma mi da errore 1054 e non capisco perchè...
ho la tabella cliente con atributi(idcliente,nome,cognome) e la tabella eventi (idevento, data) ho anche la relazione partecipa (idcliente,idevento) che le collega
Selezionare tutti i cliente e, per ciascuno di essi l'evento associato e la data in cui avviene.
select cliente, count(*), e.Data
from cliente as c join evento as e
on (c.IdCliente = e.IdEvento)
group by evento;
hai il nome di un campo uguale al nome della tabella? pessima idea. Vedo [cliente] ed [evento] usati sia come
nome tabella sia come
nome campo.
Pessima idea anche l'uso di un campo chiamato "Data"... non è una parola riservata ma... quasi. Meglio un DataEvento.
Devi indicare il campo per cui vuoi fare il count, immagino IdCliente.
Anche la data dell'evento deve avere una funzione di aggregazione oppure, come è probabile, devi aggiungere quel campo al Group By
Visto che usi la dot notation, anteponi a tutti i campi la tabella in cui si trovano.
select c.cliente, count(c.IdCliente), e.Data
from cliente as c join evento as e
on (c.IdCliente = e.IdEvento)
group by e.evento, e.Data;
l'ho tirata un po' a caso.
Il Group By forse è meglio farlo per IDevento.