我们可以使用group by和where字段名相同的条件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们可以使用group by和where字段名相同的条件相关的知识,希望对你有一定的参考价值。
我有一个要求,例如必须提取用户选择的日期范围内的所有记录,并选择从2011年1月15日至2011年8月20日开始的所有员工并按日期分组。
我应该如何为此编写SQL查询:
SELECT *
FROM employees
WHERE startdate >= '15-jan-2011'
AND startdate <= '20-aug-2011'
GROUP BY startdate
答案
绝对。这将导致过滤您日期范围内的记录,然后按每天有数据的位置将其分组。
应该注意,您将只能选择开始日期,然后选择您要计算的任何汇总。否则,它应该可以正常工作。
例如,此查询将为您提供每个开始日期的雇员数:
SELECT startdate, count(*)
FROM employees
WHERE startdate >= '15-jan-2011'
AND startdate <= '20-aug-2011'
GROUP BY startdate
另一答案
您可以,但是“ GROUP BY”子句用于将多组行组合在一起,因此对您的问题(或涉及“ SELECT *”的任何内容)没有意义。
不过要回答您的问题:
SELECT DATEADD(dd, 0, DATEDIFF(dd,0,StartDate)) AS 'StartDate', <other fields>
FROM Employees
WHERE StartDate BETWEEN '15-Jan-2011' AND '20-Jan-2011'
ORDER BY StartDate
注意:从日期开始剥离的时间来自here
另一答案
我对这个重录组有问题,因为他被阻止在哪里
[SELECT nreception,COUNT(article_id)as nbrarticle,fournisseur_id,numfact,SUM(quantite)为Quantiterecep,dateachat,SUM(prixTotal)作为prixTotal,来自库存,fournisseur,其中(fournisseur.idfr = stock.fournisseur_id)GROUP BY nreception“;
以上是关于我们可以使用group by和where字段名相同的条件的主要内容,如果未能解决你的问题,请参考以下文章