为什么我加入表时列变得不明确?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我加入表时列变得不明确?相关的知识,希望对你有一定的参考价值。

我正在努力做到这一点:enter image description here

with :(获取错误“错误代码:1052。字段列表中的列'INV_NUMBER'不明确“)

SELECT CONCAT(CUS_FNAME, " " ,CUS_LNAME) AS 'Customer', 
INV_NUMBER AS 'inv_number',
DATE_FORMAT(invoice.INV_DATE, '%W') AS 'Day of Week' 
SUM(line.LINE_PRICE)

FROM customer

RIGHT JOIN INVOICE ON invoice.CUS_CODE = customer.CUS_CODE
JOIN LINE

WHERE CUS_FNAME LIKE 'Leona%' 
OR CUS_FNAME LIKE '%Paul%'
OR CUS_FNAME LIKE  '%Myron%' 

GROUP BY INV_NUMBER;

与此相对:

enter image description here

with

SELECT CONCAT(CUS_FNAME, " " ,CUS_LNAME) AS 'Customer', 
INV_NUMBER AS 'inv_number',
DATE_FORMAT(invoice.INV_DATE, '%W') AS 'Day of Week' 

FROM customer

RIGHT JOIN INVOICE ON invoice.CUS_CODE = customer.CUS_CODE


WHERE CUS_FNAME LIKE 'Leona%' 
OR CUS_FNAME LIKE '%Paul%'
OR CUS_FNAME LIKE  '%Myron%' 

GROUP BY INV_NUMBER;

这里是ERD:

enter image description here

((更好的解释?)第二个代码是我在处理问题时想出的一切,直到我在第一个代码中添加了一些语句之前,所有工作都进行了。我正在尝试添加“花了钱”列,但我不断收到错误消息:

错误代码:1052。字段列表中的列“ INV_NUMBER”不明确

答案

您的INV_NUMBER可能来自LINEINVOICE。在您的选择中指定它:

SELECT
  `INVOICE`.`INV_NUMBER` AS 'inv_number'

以上是关于为什么我加入表时列变得不明确?的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00918: 使用数据透视时列定义不明确

当我加入另一个表时,SUM 不正确

当我们有多个表时获取 Querydsl Oracle Rowid

Mysql查询加入5个表

数据表 - 水平滚动时列标题不移动

通过 excel VBA 加入 SQL 表时出错