0

我有 2 张桌子:

test桌子:

Column                           Type                             Nullable Primary Key 
-------------------------------- -------------------------------- -------- ----------- 
id                               integer                                 0           1 
name                             varchar(255)                            1           0 
price                            varchar(255)                            1           0

行:

id name price
1  BMW  3000
2  AUDI  2500

test_2桌子:

Column                           Type                             Nullable Primary Key 
-------------------------------- -------------------------------- -------- ----------- 
id                               integer                                 0           1 
ad_id                            integer                                 1           0 
user_id                          integer                                 1           0 
price                            integer                                 1           0 

行:

         id       ad_id     user_id       price 
----------- ----------- ----------- ----------- 
          1           1          23        2000 
          2           1          23        2200 
          3           1          22        2050 

我需要得到这个结果:

BMW 23 2200 
BMW 22 2050

我的 SQL:

SELECT * FROM test, test_2 WHERE test_2.ad_id=test.id GROUP BY user_id ORDER BY test_2.price DESC

但我总是收到这个错误:

无法执行语句。
对“id”的函数或列引用也必须出现在 GROUP BY
SQLCODE=-149, ODBC 3 State="42000"
第 1 行第 1 列中

我使用 SQL Anywhere。谢谢你的帮助。

4

1 回答 1

0

除了聚合函数之外,所有列都group by应该在 select 子句中

SELECT test.name, test_2.user_id, max(test_2.price)
FROM test, test_2 
WHERE test_2.ad_id=test.id 
GROUP BY test.name, test_2.user_id
ORDER BY test_2.price DESC
于 2013-09-06T09:08:53.153 回答