Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何编写只返回销售日期小于今天的帐户的查询?_Sql_Where - Fatal编程技术网

Sql 如何编写只返回销售日期小于今天的帐户的查询?

Sql 如何编写只返回销售日期小于今天的帐户的查询?,sql,where,Sql,Where,从表面上看,这似乎是一个简单的where子句,但鉴于下面的数据,我只希望我的查询返回帐户B的销售交易,条件是只显示那些在2015年之后没有任何销售日期的帐户 Acct Sale Date A 2030 A 2018 A 2015 B 2015 B 2014 B 2013 C 2020 C 2015 C 2012 按分组。使用HAVING仅返回上次SaleDate的账户按分组。使

从表面上看,这似乎是一个简单的where子句,但鉴于下面的数据,我只希望我的查询返回帐户B的销售交易,条件是只显示那些在2015年之后没有任何销售日期的帐户

Acct     Sale Date

A       2030
A       2018
A       2015
B       2015
B       2014
B       2013
C       2020
C       2015
C       2012

按分组。使用
HAVING
仅返回上次SaleDate的账户按
分组。使用
HAVING
仅返回带有上次销售日期的账户如果您需要结果中的每笔交易,您可以使用
NOT EXISTS

SELECT *
FROM YourTable as T
WHERE NOT EXISTS(SELECT 1 FROM YourTable
                 WHERE SaleDate >= 2015
                 AND Acct = T.Acct);

如果您需要结果中的每个事务,您可以使用
NOT EXISTS

SELECT *
FROM YourTable as T
WHERE NOT EXISTS(SELECT 1 FROM YourTable
                 WHERE SaleDate >= 2015
                 AND Acct = T.Acct);

有没有一种方法可以将拥有与何处结合起来?比如:按账户的最小值(saledate)>=2015从tablename组中选择账户,其中账户位于('A','B');是,其中可用于在执行分组依据和HAVING之前过滤掉行。把WHERE放在groupby子句之前。有没有一种方法可以将have和WHERE结合起来?比如:按账户的最小值(saledate)>=2015从tablename组中选择账户,其中账户位于('A','B');是,其中可用于在执行分组依据和HAVING之前过滤掉行。在GROUPBY子句之前放置WHERE。
SELECT *
FROM YourTable as T
WHERE NOT EXISTS(SELECT 1 FROM YourTable
                 WHERE SaleDate >= 2015
                 AND Acct = T.Acct);