【问题标题】:SQLPLUS Value TroubleSQLPLUS 值问题
【发布时间】:2012-11-28 07:23:57
【问题描述】:

我的 SQL 查询有问题。

我的任务是显示已向至少 4 家不同商店销售过产品的员工的姓名。

我写了以下查询:

select EmpCode from Items
group by EmpCode
having COUNT (EmpCode)>=4
order by EmpCode desc;

但我仍然会为那些卖给同一家商店的员工获得价值,结果是:

EMPCODE
-------
   E4
   E3
   E2
   E1

我知道其他人已经得到了各种其他答案,但最常见的是只返回 1 个值。

表格包含“ItemNo, StoreNo, ItemDesc, Quant, Units, ReorderNo, Price, EmpCode” 该表共有 34 条记录,其中 0 个空值。 多名员工向不同的商店出售了多种商品。 但完整的表格显示,只有 E3 向 4 家不同的商店出售 而其他人则卖给了同一家商店、两家商店或三家商店。 我希望表明 E3 是唯一一个向 4 家不同商店销售过产品的员工。

任何帮助将不胜感激,谢谢

【问题讨论】:

  • 提供有关您的表结构的信息将有助于了解您的问题
  • 添加了有关表结构的信息,希望对您有所帮助
  • 只是为了确定该表的语义:如果它们是您所说的那样,为什么说 ItemDec 在该表中?一件商品在商店 1 由 E1 销售时,是否与在同一商店由 E2 或由 E1 在商店 2 销售时具有不同的描述?是否存在规范化问题或者表格真的是一个视图?
  • 项目描述只是项目本身的名称,为了便于阅读,最好使用 ItemNo + ItemDesc。任务说不需要规范化。

标签: select sqlplus


【解决方案1】:

你应该使用COUNT(DISTINCT StoreNo):

select EmpCode 
from Items
group by EmpCode
having COUNT (DISTINCT StoreNo)>=4
order by EmpCode desc;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    相关资源
    最近更新 更多