0

我遇到了 sql 的问题。我不知道为什么访问和 sql server 一直显示错误。我使用 phpmyadmin,但没有问题。

我有 1 张桌子。我的表名是 t_data

ID  MasterCode  DetailCode  Description  Item  Status
1       1           1.1      Resources   Meat     1
2       1           1.1      Resources   Meat     1
3       1           1.1      Resources   Meat     1
4       1           1.1      Resources   Meat     1
5       3           3.1       Utility    oil      1
6       2           2.1      Transport   BBM      1

我想查询该表并希望结果如下所示:

MasterCode  Description
    1       Resources
    2       Utility
    3       Transport

这是我的 sql 语法

"select MasterCode, Description from t_data group by Description order by MasterCode"

通常我只是使用那个 sql 语法,我可以得到我想要的。但现在我不能。

您试图执行一个不包含指定表达式作为聚合函数的查询。

如果我使用 access 和 sql server,我会收到该错误。如果我在 XAMPP 中使用 phpmyadmin,它工作正常。但我不想使用 phpmyadmin。我想使用访问或sql server。

我已经在谷歌上搜索过这个错误。我把我的sql改成这个。

"select count(*), Description from t_data group by Description "

"select a.categoryMaster, b.categoryDesc from t_category a inner join t_category b on a.categoryDetail = b.categoryDetail"

没有解决我的问题,因为我也想获得 MasterCode。

任何解决方案?谢谢。

4

3 回答 3

4

您可以使用DISTINCT

select distinct MasterCode, Description 
from t_data
order by MasterCode;

请参阅带有演示的 SQL Fiddle

或者您可以使用聚合函数,例如MAX()

select max(MasterCode) MasterCode, Description 
from t_data
group by Description
order by MasterCode;

请参阅带有演示的 SQL Fiddle

于 2012-10-04T10:23:32.840 回答
1

试试这个

SELECT MasterCode, Description 
FROM t_data 
GROUP BY Description, MasterCode 
ORDER BY MasterCode
于 2012-10-04T10:24:04.747 回答
1
select min(MasterCode) MasterCode, Description 
from t_data 
group by Description 
order by MasterCode

或者

select MasterCode, Description 
from t_data 
group by MasterCode,Description 
order by MasterCode
于 2012-10-04T10:27:16.880 回答