Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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 oracle中的Group by无法使用max_Sql_Oracle - Fatal编程技术网

Sql oracle中的Group by无法使用max

Sql oracle中的Group by无法使用max,sql,oracle,Sql,Oracle,我在试图让我的团队在Oracle工作时遇到问题 我的剧本如下 Select DISTINCT dc.despatch_num as ShipmentReference, sh.delivery_name as Name, dc.address1 as DeliveryAddress1, dc.address2 as DeliveryAddress2, dc.address3 as City, dc.address5 as County, d

我在试图让我的团队在Oracle工作时遇到问题

我的剧本如下

Select
    DISTINCT dc.despatch_num as ShipmentReference,
    sh.delivery_name as Name,
    dc.address1 as DeliveryAddress1,
    dc.address2 as DeliveryAddress2,
    dc.address3 as City,
    dc.address5 as County,
    dc.POSTCODE as Postcode,
    dc.country_code as Country,
    sh.inv_contact_telephone_1 as TelephoneNumber,
    sh.inv_contact_email as email,
    ph.package_num as Numberofpackages,
    ph.package_id as PackageReference,
    ph.weight as PackageWeight,
    'Kilos' as WeightUnit,
    max(pro.length) as Length
from 
    sales_header sh
    left join customer cu on sh.customer_account = cu.customer_account
    left join sales_item si on sh.sales_document_num = si.sales_document_num
    left join customer_address ca on cu.customer_account = ca.customer_account
    left join additional_charge ac on sh.sales_document_num = ac.sales_document_num and sh.order_type = ac.order_type
    left join despatch_header dc on ac.despatch_num = dc.despatch_num
    left join package_header ph on dc.despatch_num = ph.despatch_num
    left join product pro on si.product_code = pro.product_code
WHERE sh.customer_name <> sh.Delivery_name and rownum <= 100 and dc.country_code ='FR';
group by DISTINCT dc.despatch_num,
    sh.delivery_name,
    dc.address1,
    dc.address2,
    dc.address3,
    dc.address5,
    dc.POSTCODE,
    dc.country_code,
    sh.inv_contact_telephone_1,
    sh.inv_contact_email,
    ph.package_num,
    ph.package_id,
    ph.weight,
    'Kilos',
选择
不同的dc.发货编号作为发货参考,
sh.U名称作为名称,
dc.address1作为交货地址1,
dc.address2作为交货地址2,
dc.3作为城市,
dc.5作为县,
dc.POSTCODE作为邮政编码,
dc.country_代码为国家/地区,
sh.inv\u联系人\u电话\u 1作为电话号码,
sh.inv\u联系方式\u电子邮件,
ph.package_num作为Numberofpackages,
ph.package_id作为PackageReference,
ph.重量作为包装重量,
“千克”作为重量单位,
最大(专业长度)作为长度
从…起
销售部主管sh
左加入sh.customer\u账户上的cu客户=cu.customer\u账户
左联合销售\项目si在sh.sales\u document\u num=si.sales\u document\u num上
左加入cu上的客户地址ca.customer\U account=ca.customer\U account
左连接sh.sales\u document\u num=ac.sales\u document\u num和sh.order\u type=ac.order\u type上的附加费用ac
左连接发送头dc on ac.DISPATCH\U num=dc.DISPATCH\U num
dc上的左连接包头ph.DISPATCH\U num=ph.DISPATCH\U num
左键连接si.product\U代码=pro.product\U代码上的product pro

其中sh.customer\u name sh.Delivery\u name和rownum代码存在多个问题

以下代码应该适合您(有关详细信息,请参阅内联注释)

Select——删除了DISTINCT,因为它在分组查询中不相关
dc.发货编号作为发货参考,
sh.U名称作为名称,
dc.address1作为交货地址1,
dc.address2作为交货地址2,
dc.3作为城市,
dc.5作为县,
dc.POSTCODE作为邮政编码,
dc.country_代码为国家/地区,
sh.inv\u联系人\u电话\u 1作为电话号码,
sh.inv\u联系方式\u电子邮件,
ph.package_num作为Numberofpackages,
ph.package_id作为PackageReference,
ph.重量作为包装重量,
“千克”作为重量单位,
最大(专业长度)作为长度
从…起
销售部主管sh
左加入sh.customer\u账户上的cu客户=cu.customer\u账户
左联合销售\项目si在sh.sales\u document\u num=si.sales\u document\u num上
左加入cu上的客户地址ca.customer\U account=ca.customer\U account
左连接sh.sales\u document\u num=ac.sales\u document\u num和sh.order\u type=ac.order\u type上的附加费用ac
左连接发送头dc on ac.DISPATCH\U num=dc.DISPATCH\U num
dc上的左连接包头ph.DISPATCH\U num=ph.DISPATCH\U num
左键连接si.product\U代码=pro.product\U代码上的product pro
其中sh.customer\u name sh.Delivery\u name

和rownum您的代码存在多个问题

以下代码应该适合您(有关详细信息,请参阅内联注释)

Select——删除了DISTINCT,因为它在分组查询中不相关
dc.发货编号作为发货参考,
sh.U名称作为名称,
dc.address1作为交货地址1,
dc.address2作为交货地址2,
dc.3作为城市,
dc.5作为县,
dc.POSTCODE作为邮政编码,
dc.country_代码为国家/地区,
sh.inv\u联系人\u电话\u 1作为电话号码,
sh.inv\u联系方式\u电子邮件,
ph.package_num作为Numberofpackages,
ph.package_id作为PackageReference,
ph.重量作为包装重量,
“千克”作为重量单位,
最大(专业长度)作为长度
从…起
销售部主管sh
左加入sh.customer\u账户上的cu客户=cu.customer\u账户
左联合销售\项目si在sh.sales\u document\u num=si.sales\u document\u num上
左加入cu上的客户地址ca.customer\U account=ca.customer\U account
左连接sh.sales\u document\u num=ac.sales\u document\u num和sh.order\u type=ac.order\u type上的附加费用ac
左连接发送头dc on ac.DISPATCH\U num=dc.DISPATCH\U num
dc上的左连接包头ph.DISPATCH\U num=ph.DISPATCH\U num
左键连接si.product\U代码=pro.product\U代码上的product pro
其中sh.customer\u name sh.Delivery\u name

和rownum通过
组中删除
DISTINCT
Kilos'
。另外,
SELECT DISTINCT
几乎从未与
groupby
一起使用。已删除它们,但仍收到相同的错误。同时删除第一个DISTINCT。因为您显示的是按分组的数据,所以它无论如何只会显示不同的值
'FR'删除
'Kilos',
删除
谢谢大家尝试从
分组中删除
不同的
'Kilos'
。另外,
SELECT DISTINCT
几乎从未与
groupby
一起使用。已删除它们,但仍收到相同的错误。同时删除第一个DISTINCT。因为您显示的是按分组的数据,所以它无论如何只会显示不同的值
'FR'删除
'Kilos',
删除
谢谢大家尝试一下
Select --removed DISTINCT as it is irrelevant in GROUP BY queries
    dc.despatch_num as ShipmentReference,
    sh.delivery_name as Name,
    dc.address1 as DeliveryAddress1,
    dc.address2 as DeliveryAddress2,
    dc.address3 as City,
    dc.address5 as County,
    dc.POSTCODE as Postcode,
    dc.country_code as Country,
    sh.inv_contact_telephone_1 as TelephoneNumber,
    sh.inv_contact_email as email,
    ph.package_num as Numberofpackages,
    ph.package_id as PackageReference,
    ph.weight as PackageWeight,
    'Kilos' as WeightUnit,
    max(pro.length) as Length
from 
    sales_header sh
    left join customer cu on sh.customer_account = cu.customer_account
    left join sales_item si on sh.sales_document_num = si.sales_document_num
    left join customer_address ca on cu.customer_account = ca.customer_account
    left join additional_charge ac on sh.sales_document_num = ac.sales_document_num and sh.order_type = ac.order_type
    left join despatch_header dc on ac.despatch_num = dc.despatch_num
    left join package_header ph on dc.despatch_num = ph.despatch_num
    left join product pro on si.product_code = pro.product_code
WHERE sh.customer_name <> sh.Delivery_name 
  and rownum <= 100 
  and dc.country_code ='FR' -- removed semi-colon from here
group by dc.despatch_num, --removed DISTINCT from here as it is INVALID use
    sh.delivery_name,
    dc.address1,
    dc.address2,
    dc.address3,
    dc.address5,
    dc.POSTCODE,
    dc.country_code,
    sh.inv_contact_telephone_1,
    sh.inv_contact_email,
    ph.package_num,
    ph.package_id,
    ph.weight; --removed 'Kilos' from end