Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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 多个联接中的按查询分组错误_Sql_Sql Server_Join - Fatal编程技术网

Sql 多个联接中的按查询分组错误

Sql 多个联接中的按查询分组错误,sql,sql-server,join,Sql,Sql Server,Join,我需要在单个查询中获取每个select项及其计数 select ordetable.order_id, count(ordetable.order_id), order_table.name, count(order_table.na me), orderitem_table.itemname, count(orderitem_table.itemname) from order_table left join orderitem_table on order

我需要在单个查询中获取每个select项及其计数

select ordetable.order_id, count(ordetable.order_id), order_table.name,
       count(order_table.na me), orderitem_table.itemname,
       count(orderitem_table.itemname)
from order_table
left join orderitem_table
    on order_table.order_id = orderitem_table.order_id
group by ordetable.order_id
我收到这个错误:

[Microsoft][ODBC驱动程序11 for SQL Server][SQL Server]列 “orderitem\u table.itemname”在选择列表中无效,因为它是 不包含在聚合函数或GROUP BY子句中


从错误消息中可以明显看出这个问题,不是吗

如下所示修改您的查询

select ordetable.order_id, count(ordetable.order_id), order_table.name,
       count(order_table.name), orderitem_table.itemname,
       count(orderitem_table.itemname)
from order_table
left join orderitem_table
    on order_table.order_id = orderitem_table.order_id
group by ordetable.order_id, order_table.name, orderitem_table.itemname

从错误消息中可以明显看出这个问题,不是吗

如下所示修改您的查询

select ordetable.order_id, count(ordetable.order_id), order_table.name,
       count(order_table.name), orderitem_table.itemname,
       count(orderitem_table.itemname)
from order_table
left join orderitem_table
    on order_table.order_id = orderitem_table.order_id
group by ordetable.order_id, order_table.name, orderitem_table.itemname

您的措辞和查询不同步。每个项目及其数量(所有订单)将


您的措辞和查询不同步。每个项目及其数量(所有订单)将


如果不希望将order_table.name和orderitem_table.itemname分组,则可以使用“min”条件

select ordetable.order_id, count(ordetable.order_id), min(order_table.name),
       count(order_table.name), min(orderitem_table.itemname),
       count(orderitem_table.itemname)
from order_table
left join orderitem_table
    on order_table.order_id = orderitem_table.order_id
group by ordetable.order_id

如果不希望将order_table.name和orderitem_table.itemname分组,则可以使用“min”条件

select ordetable.order_id, count(ordetable.order_id), min(order_table.name),
       count(order_table.name), min(orderitem_table.itemname),
       count(orderitem_table.itemname)
from order_table
left join orderitem_table
    on order_table.order_id = orderitem_table.order_id
group by ordetable.order_id


常规GROUP BY规则说:如果指定了GROUP BY子句,则SELECT列表中的每个列引用必须标识一个分组列或是集合函数的参数!您应该将
order_表.name
orderitem_表.itemname
添加到
group by
。常规group by规则规定:如果指定group by子句,则SELECT列表中的每个列引用必须标识一个分组列或是set函数的参数!您应该将
order_表.name
orderitem_表.itemname
添加到
group by
。感谢您的帮助,我可以确认我的问题吗?如果我使用group by子句,如果我没有对所选项目使用聚合函数,我需要将select列表中的所有项目指定为group by。请确认我是对的。非常感谢,假设一个顺序中有两个名称,有没有办法获取两个名称或其他名称的数组。我需要获取数组输出中的所有值,包括count和values谢谢帮助,我可以确认我的问题吗,如果我使用group by子句,如果我没有对select项使用聚合函数,我需要将select列表中的所有项指定为group by。请确认我是对的。非常感谢,假设我的顺序中有两个名称,是否有任何方法以两个名称的数组或其他形式获取。我需要获取数组输出中的所有值,count和Values感谢您的帮助,如果我使用具有项目名称的用户min,我将获得与查询关联的所有名称吗?是否有任何方法将特定选择项目作为数组获取,例如:特定顺序的名称数组?是的,您将获得所有名称。SQL查询中没有数组类型,您可以通过编程将此结果生成一个数组,您可以使用SQL中的“order by”关键字对结果进行排序。感谢帮助,如果我使用项名称的用户min,我将获得与查询相关联的所有名称吗?是否有任何方法将特定的选择项获取为数组例如:特定顺序的名称数组?是,你会得到所有的名字。SQL查询中没有数组类型,您可以通过编程将此结果生成一个数组,您可以使用SQL中的“order by”关键字对结果进行排序。我需要获取所有select值以及计数,查询是否也获取名称?我不确定我是否理解它,哪些值来自哪些表和列?假设,我需要再获取一个值,比如itemnumber,我可以在查询中选择关键字后指定字段名否?计数(*)将统计我在选择中指定的所有字段?是的,您可以。请记住,SELECT中的非聚合列也必须在GROUP BY中提及。Count(*)将为
itemname
+
itemname
的每个组合计算行数,请参见更新。我需要获取所有select值以及计数,查询是否也获取名称?不确定我是否理解它,哪些值来自哪些表和列?假设我需要获取一个值,例如itemnumber,我可以在查询中选择关键字后指定字段名称否?计数(*)将计算我在选择中指定的所有字段?是,您可以。请记住,SELECT中的非聚合列也必须在GROUP BY中提及。Count(*)将对
itemname
+
itemname
的每个组合的行数进行计数,请参见更新。