Mysql 有没有其他的方法来看待一个“问题”;及;这类问题?
我有以下问题:Mysql 有没有其他的方法来看待一个“问题”;及;这类问题?,mysql,mysql-workbench,Mysql,Mysql Workbench,我有以下问题: SELECT CUS_LNAME, customer.CUS_CODE, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, CUS_PHONE, CUS_BALANCE, CUS_PPBAL, P_DESCRIPT, P_CODE, vendor.V_CODE, P_QOH, P_REORDER, P_INDATE, P_DISCOUNT, P_PRICE, P_MIN FROM customer JOIN product JOIN ven
SELECT CUS_LNAME,
customer.CUS_CODE,
CUS_FNAME,
CUS_INITIAL,
CUS_AREACODE,
CUS_PHONE,
CUS_BALANCE,
CUS_PPBAL,
P_DESCRIPT, P_CODE, vendor.V_CODE, P_QOH, P_REORDER,
P_INDATE, P_DISCOUNT, P_PRICE, P_MIN
FROM customer
JOIN product
JOIN vendor
JOIN invoice ON invoice.CUS_CODE=customer.CUS_CODE
WHERE EXTRACT(YEAR_MONTH FROM '2016-01-01')
GROUP BY product.P_CODE
HAVING CUS_LNAME LIKE 'O%';
列出2016年1月向姓氏以字母“O”开头的客户销售的所有产品的所有客户和产品信息
我从中写道:
SELECT CUS_LNAME,
customer.CUS_CODE,
CUS_FNAME,
CUS_INITIAL,
CUS_AREACODE,
CUS_PHONE,
CUS_BALANCE,
CUS_PPBAL,
P_DESCRIPT, P_CODE, vendor.V_CODE, P_QOH, P_REORDER,
P_INDATE, P_DISCOUNT, P_PRICE, P_MIN
FROM customer
JOIN product
JOIN vendor
JOIN invoice ON invoice.CUS_CODE=customer.CUS_CODE
WHERE EXTRACT(YEAR_MONTH FROM '2016-01-01')
GROUP BY product.P_CODE
HAVING CUS_LNAME LIKE 'O%';
产生以下错误:
ERROR 1055 (42000) at line 1: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mimir.customer.CUS_LNAME' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
query returned no results!
在多次阅读该问题后,我产生了这样一个想法:只需打印每个在此日期购买物品的客户的姓名,姓氏以O开头:
SELECT CUS_LNAME,
customer.CUS_CODE,
CUS_FNAME,
CUS_INITIAL,
CUS_AREACODE,
CUS_PHONE,
CUS_BALANCE,
CUS_PPBAL,
P_DESCRIPT, P_CODE, vendor.V_CODE, P_QOH, P_REORDER,
P_INDATE, P_DISCOUNT, P_PRICE, P_MIN
FROM customer
JOIN product
JOIN vendor
JOIN invoice ON invoice.CUS_CODE=customer.CUS_CODE
WHERE EXTRACT(YEAR_MONTH FROM '2016-01-01') AND CUS_LNAME LIKE 'O%';
这个查询在MySQL Workbench上确实有效,但奇怪的是,在我用来提交答案的在线工具(Mimir)上却不起作用。此外,在没有反馈的情况下,我离开时思考了问题的本质。它不提供任何反馈,只是一句话:行不正确代码>
我不相信更改我的连接的顺序
或我使用FROM
的表会改变任何事情
任何反馈或提示都将不胜感激。这是上述问题的ERD
如果您按产品分组。p\u代码
输出将包含唯一的p\u代码,但该p\u代码可能有多个客户。每个P_代码显示哪个客户?完全正确!这就是为什么我认为我可能在问题中遗漏了一些东西尝试第二个查询,在发票和行、行产品以及产品和供应商之间使用JOIN<代码>提取
不正确。这是一个不变的表达式<代码>年(库存日期)=2016年,月(库存日期)=1
不正确您的意思是摘录不属于此处?如果是这样,问题还要求使用EXRACT datetime函数。这就是我写它的原因。我试试你说的!显示表达式具有固定值“201601”,并且不仅依赖于任何数据。大于0总是正确的。您可能需要其中提取(从库存日期算起的年/月)=201601…
作为年
/月
功能的替代方案。