COUNT () 2 columnas con 2 uniones separadas en Access?
Frecuentes
Visto 129 equipos
2
Estoy tratando de escribir una consulta de Access que se una a una sola tabla dos veces, luego cuente un campo de cada uno.
SELECT Wines.wID,
Wines.num,
Wines.Brand,
Wines.wYear,
Wines.Variety,
Wines.Score,
g.fName,
g.lName ,
Count(DISTINCT Votes.vote1) AS Vote1,
Count(DISTINCT Votes_1.vote2) AS Vote2
FROM ((Wines
LEFT JOIN Guests AS g
ON Wines.wID = g.wineID)
LEFT JOIN Votes
ON Wines.num = Votes.vote1)
LEFT JOIN Votes AS Votes_1
ON Wines.num = Votes_1.vote2
WHERE (((Wines.pID)=2))
GROUP BY Wines.wID, Wines.num, Wines.Brand,
Wines.wYear, Wines.Variety, Wines.Score, g.fName, g.lName
ORDER BY Wines.Score DESC , Count(DISTINCT Votes.vote1) DESC;
Sin embargo, no funciona. COUNT(DISTINCT)
no parece funcionar en Access. Omitirlo permite que se ejecute la consulta, pero no obtengo los resultados correctos. Usarlo solo una vez funciona bien. Parece que no puedo escribir una subconsulta en la instrucción COUNT y no estoy muy seguro de qué más hacer.
1 Respuestas
2
Puede usar DCount, si está trabajando en MS Access, una subconsulta, o puede ser posible configurar una consulta de conteo y unirse a ella. No estoy seguro de dónde proviene la duplicación, por lo que las notas a continuación ilustran algunas ideas. No está debidamente probado.
SELECT Wines.wID,
Wines.num,
Wines.Brand,
Wines.wYear,
Wines.Variety,
Wines.Score,
g.fName,
g.lName ,
DCount("vote1","votes","vote1"=Wines.num) AS Vote1,
(SELECT Count(Vote2) FROM
(SELECT DISTINCT vote2
FROM votes v
INNER JOIN Wines w ON v.vote2=w.Num
WHERE w.pID=2 AND w.num=Wines.num)) AS Vote2
FROM Wines
LEFT JOIN Guests AS g
ON Wines.wID = g.wineID
WHERE (((Wines.pID)=2))
GROUP BY Wines.wID, Wines.num, Wines.Brand,
Wines.wYear, Wines.Variety, Wines.Score, g.fName, g.lName
ORDER BY Wines.Score DESC , vote1 DESC;
Respondido 04 Jul 12, 11:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ms-access ms-access-2007 or haz tu propia pregunta.