我试图从我的数据库中检索包含min函数的信息,该函数可能为null,也可能不为null。我发现如果min为null则查询不会返回任何数据。
这是我目前的代码:
select store.StoreID, store.StoreManager,
min(salesnumbers.totalsales)
from Store
INNER JOIN salesnumbers on store.StoreID = salesnumbers.StoreID
where store.StoreID = 17
GROUP BY StoreID;
我也尝试过:
select store.StoreID, store.StoreManager,
min(IFNULL(salesnumbers.totalsales, "N/A"))
from Store
INNER JOIN salesnumbers on store.StoreID = salesnumbers.StoreID
where store.StoreID = 17
GROUP BY StoreID;
这给了我相同的结果。任何建议都非常感谢。
答案 0 :(得分:2)
您缺少组中的列,这会导致错误的结果。另外,使用外部连接:
select
store.StoreID,
store.StoreManager,
min(salesnumbers.totalsales) totalsales
from Store
left join salesnumbers on store.StoreID = salesnumbers.StoreID
where store.StoreID = 17
group by 1, 2
注意更方便地使用列数字而不是组中的表达式(更容易编码,阅读并查看是否错过了一个)