2013-02-13 71 views
-3

tblSales:基本SQL查询,而无需使用子查询

EmployeeID, 
DailyDate, 
Sales# 

我怎样才能使一个查询返回每个员工多少天有销售#最低金额是多少?

我特别想从单个SQL语句中运行它,我已经研究过这一点,但我只是想到了它!谢谢

+4

请问可以downvoters包括他们的投票理由吗? (在问题被更新为包含表格结构后,我取消了我自己的downvote。) – 2013-02-13 15:31:27

回答

2

我有点困惑,因为标题和这个问题的内容似乎没有关联。标题是指似乎不相关的子表单。该问题还指出,您可以使用子查询来完成此操作,但您希望在一个语句中执行该操作,但带子查询的查询仍然是一个语句。

因此,我正在从您的主要问题的问题:“我怎样才能作出查询,返回每个员工有多少天销售#??”,以及您想要在一个声明中实现此目的的事实。在这种情况下你可以使用:

SELECT T.EmployeeID, 
     COUNT(*) AS MinDays 
FROM YourTable T 
     INNER JOIN 
     ( SELECT DailyDate, MIN([Sales#]) AS MinSales 
      FROM YourTable 
      GROUP BY DailyDate 
     ) T2 
      ON T2.DailyDate = T.DailyDate 
      AND T2.[MinSales] = T.[Sales#] 
GROUP BY T.EmployeeID; 
+0

请参阅已编辑的问题,谢谢 – 2013-02-13 15:50:03

+0

请问我发布的查询是否无法达到此目的? – GarethD 2013-02-13 15:50:45

+0

对不起,我对SQL很陌生,所以很有可能我在这里做错了事,我在查询定义的SELECT列表中出现一个错误,说'由别名'Sales引起的循环引用' – 2013-02-13 15:52:38