Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 带有GROUPBY子句的Db2 select查询抛出错误?_Sql_Group By_Db2 - Fatal编程技术网

Sql 带有GROUPBY子句的Db2 select查询抛出错误?

Sql 带有GROUPBY子句的Db2 select查询抛出错误?,sql,group-by,db2,Sql,Group By,Db2,我想得到SERIAL_NUM和EMP_NAME的不同值,但是下面的查询抛出了一个错误 SELECT SERIAL_NUM,EMP_NAME,NOTESID FROM DB2INST1.EMP_HC GROUP BY SERIAL_NUM,EMP_NAME,NOTESID HAVING FUNC_VP ='Bob ' AND VICE_PRES ='Bob' AND DIRECTOR ='Michael' AND THIRD_LINE ='Linda ' 错误 db2s

我想得到
SERIAL_NUM
EMP_NAME
的不同值,但是下面的查询抛出了一个错误

SELECT SERIAL_NUM,EMP_NAME,NOTESID FROM DB2INST1.EMP_HC 
GROUP BY 
SERIAL_NUM,EMP_NAME,NOTESID 
HAVING   
FUNC_VP ='Bob '  AND 
VICE_PRES ='Bob'  AND 
DIRECTOR ='Michael'  AND 
THIRD_LINE ='Linda ' 
错误


db2sql错误:SQLCODE=-119,SQLSTATE=42803,SQLERRMC=FUNC_VP,DRIVER=3.63.123

您不能在没有出现在GROUPBY子句中的字段上使用HAVING,因为该字段在一个组中可能有多个值

您可能想做的是使用plainwhere筛选出感兴趣的行,然后按分组

SELECT SERIAL_NUM,EMP_NAME,NOTESID 
FROM DB2INST1.EMP_HC 
WHERE FUNC_VP ='Bob '  
  AND VICE_PRES ='Bob'  
  AND DIRECTOR ='Michael'  
  AND THIRD_LINE ='Linda '  
GROUP BY SERIAL_NUM,EMP_NAME,NOTESID 
GROUP BY SERIAL_NUM,EMP_NAME,NOTESID,FUNC_VP,VICE_PRES,DIRECTOR,THIRD_LINE
…或者,如果出于某种原因需要使用have,则需要将FUNC_VP、副总裁、主管和第三行字段添加到组中

SELECT SERIAL_NUM,EMP_NAME,NOTESID 
FROM DB2INST1.EMP_HC 
WHERE FUNC_VP ='Bob '  
  AND VICE_PRES ='Bob'  
  AND DIRECTOR ='Michael'  
  AND THIRD_LINE ='Linda '  
GROUP BY SERIAL_NUM,EMP_NAME,NOTESID 
GROUP BY SERIAL_NUM,EMP_NAME,NOTESID,FUNC_VP,VICE_PRES,DIRECTOR,THIRD_LINE
如果需要“序列号和EMP\u名称的不同值”,则需要告诉数据库如果存在多个
SERIAL\u-NUM
EMP\u-NAME的组合,则选择哪个
notesid
。如果您不关心您得到的是哪个
notesid
,您可以使用
min()


但是,当我使用min(notesid)时,由于resultSet.getString(“notesid”);当我尝试遍历结果集时引发错误?@user3398326:您是否像我那样使用列别名?(
作为notesid