提示[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]在应使用条件的上下文(在 ',' 附近)中指定了非布尔类型的表达式。 (4145) [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]关键字 'GROUP' 附近有语法错误。
时间: 2023-09-18 18:13:02 浏览: 79
这个错误提示意味着你的 SQL 查询中出现了语法错误。根据提示信息来看,可能是你的语句中的某个条件表达式不是布尔类型,或者是 GROUP BY 关键字附近出现了语法错误。
根据你提供的 SQL 语句和错误提示,我看到你的语句中缺少一个 ON 子句,同时你在 WHERE 子句中使用了 IN 运算符,但是括号内的子查询没有指定任何条件。因此,你可以尝试这样修改你的 SQL 语句:
```
SELECT FactoryName, JiJXH, shi, AVG(sale) AS sale_avg
FROM tmp_apply
WHERE (FactoryName, JiJXH) IN (
SELECT FactoryName, JiJXH
FROM tmp_apply
GROUP BY FactoryName, JiJXH
HAVING SUM(ShuL) > 500
)
GROUP BY FactoryName, JiJXH, shi;
```
这个修改后的 SQL 语句中,我添加了一个 ON 子句,并且在 IN 子句的括号中添加了一个子查询,用于指定需要查询的条件。同时,我也对 AVG 函数的结果添加了一个别名,使查询结果更具可读性。
相关问题
Microsoft ODBC Driver 17 for SQL Server : Can't open lib 'ODBC Driver 17 for SQL Server' : file not found
这个问题通常是由于缺少ODBC Driver 17 for SQL Server驱动程序或者驱动程序没有正确安装所导致的。可以按照以下步骤来解决这个问题:
1. 确认ODBC Driver 17 for SQL Server已经正确安装,可以从Microsoft官网下载并安装ODBC Driver 17 for SQL Server。
2. 确认ODBC Driver 17 for SQL Server的库文件路径已经正确配置到LD_LIBRARY_PATH环境变量中。可以使用以下命令来添加:
```
export LD_LIBRARY_PATH=/opt/microsoft/msodbcsql17/lib64:$LD_LIBRARY_PATH
```
其中/opt/microsoft/msodbcsql17/lib64为ODBC Driver 17 for SQL Server的库文件路径。
3. 确认ODBC Driver 17 for SQL Server的库文件名正确,可以使用以下命令来查看:
```
ls /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.5.so.2.1
```
如果文件名不正确,可以通过软链接来解决:
```
ln -s /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.5.so.2.1 /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.5.so
```
其中/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.5.so.2.1为ODBC Driver 17 for SQL Server的库文件名。
4. 如果以上步骤都正确,尝试重新启动应用程序或者重启系统来使配置生效。
linux安装odbc driver 17 for sql server
在Linux上安装ODBC Driver 17 for SQL Server可以按照以下步骤进行:
1. 添加Microsoft的密钥和存储库,以便在系统中安装Microsoft的软件包。打开终端并输入以下命令:
```
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
```
2. 更新存储库并安装ODBC Driver 17 for SQL Server。在终端中运行以下命令:
```
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
```
3. 安装UnixODBC开发文件,以便链接ODBC Driver 17 for SQL Server。在终端中运行以下命令:
```
sudo apt-get install -y unixodbc-dev
```
4. 配置ODBC数据源,创建/etc/odbc.ini文件并添加以下内容:
```
[mydatasource]
Driver=ODBC Driver 17 for SQL Server
Server=myserver.database.windows.net
Port=1433
Database=mydatabase
Uid=myusername
Pwd=mypassword
Encrypt=yes
TrustServerCertificate=no
Connection Timeout=30
```
5. 测试ODBC连接,可以使用isql命令测试ODBC连接。在终端中运行以下命令:
```
isql -v mydatasource myusername mypassword
```
如果连接成功,将会显示ODBC Driver和SQL Server的版本信息。
希望这些步骤能够帮助你在Linux上成功安装ODBC Driver 17 for SQL Server。