在访问连接表中使用 sql 获取前 10 名
GET top 10 using sql in access joining tables
这些是我的 table:
table 业务
BUSINESSUSERNAME|BUSINESSPASSWORD|BUSINESSNAME|
Res1 |123 |Cafe |
Res2 |456 |Foodtruck |
table 用户
USERNAME|USERPASSWORD|NAME|
user1 |123 |mr.1|
user2 |234 |mr.2|
table 食物
FOODID|FOODNAME|FOODPRICE|BUSINESSUSERNAME|
1 |CAKE | 5 |Res1 |
2 |SHAKE | 2 |Res2 |
3 |COLA | 3 |Res1 |
table FOOD_RATING
FOODREVIEWID|FOODID|FOODRATING|BUSINESSUSERNAME|USERNAME|
1 |2 |3 |Res2 |user1 |
2 |2 |5 |Res2 |user2 |
3 |1 |4 |Res1 |user1 |
4 |3 |1 |Res1 |user1 |
我想根据平均评分获得前 10 名食物:
RANK|FOODNAME|FODPRICE|AVGRATING|BUSINESSUSERNAME
1 |CAKE |5 |4 |Res1
2 |SHAKE |3 |4 |Res2
3 |COLA |3 |1 |Res1
.
.
.
10
编辑:添加SELECT TOP 10
ORDER BY
在GROUP BY
之后
SELECT TOP 10 FOOD.FOODNAME, FOOD.FOODPRICE
, IIF(Round(Avg(FOODRATING), 1) IS NULL, 0, Round(Avg(FOODRATING), 1)) AS FOODAVGRATING
FROM FOOD
LEFT JOIN FOOD_REVIEW ON FOOD.FOODID = FOOD_REVIEW.FOODID
WHERE (((FOOD.BUSINESSUSERNAME) = "someusername"))
GROUP BY FOOD.FOODNAME, FOOD.FOODPRICE
ORDER BY IIF(Round(Avg(FOODRATING), 1) IS NULL, 0, Round(Avg(FOODRATING), 1)) DESC;
这些是我的 table:
table 业务
BUSINESSUSERNAME|BUSINESSPASSWORD|BUSINESSNAME|
Res1 |123 |Cafe |
Res2 |456 |Foodtruck |
table 用户
USERNAME|USERPASSWORD|NAME|
user1 |123 |mr.1|
user2 |234 |mr.2|
table 食物
FOODID|FOODNAME|FOODPRICE|BUSINESSUSERNAME|
1 |CAKE | 5 |Res1 |
2 |SHAKE | 2 |Res2 |
3 |COLA | 3 |Res1 |
table FOOD_RATING
FOODREVIEWID|FOODID|FOODRATING|BUSINESSUSERNAME|USERNAME|
1 |2 |3 |Res2 |user1 |
2 |2 |5 |Res2 |user2 |
3 |1 |4 |Res1 |user1 |
4 |3 |1 |Res1 |user1 |
我想根据平均评分获得前 10 名食物:
RANK|FOODNAME|FODPRICE|AVGRATING|BUSINESSUSERNAME
1 |CAKE |5 |4 |Res1
2 |SHAKE |3 |4 |Res2
3 |COLA |3 |1 |Res1
.
.
.
10
编辑:添加SELECT TOP 10
ORDER BY
在GROUP BY
之后
SELECT TOP 10 FOOD.FOODNAME, FOOD.FOODPRICE
, IIF(Round(Avg(FOODRATING), 1) IS NULL, 0, Round(Avg(FOODRATING), 1)) AS FOODAVGRATING
FROM FOOD
LEFT JOIN FOOD_REVIEW ON FOOD.FOODID = FOOD_REVIEW.FOODID
WHERE (((FOOD.BUSINESSUSERNAME) = "someusername"))
GROUP BY FOOD.FOODNAME, FOOD.FOODPRICE
ORDER BY IIF(Round(Avg(FOODRATING), 1) IS NULL, 0, Round(Avg(FOODRATING), 1)) DESC;