Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 如何获得在过去365天内购买最多但以前没有购买的客户?_Sql_Sql Server - Fatal编程技术网

Sql 如何获得在过去365天内购买最多但以前没有购买的客户?

Sql 如何获得在过去365天内购买最多但以前没有购买的客户?,sql,sql-server,Sql,Sql Server,我在编写此sql查询时遇到问题。基本上,我需要找到在过去365天内NSALE最多,但在365天之前销售为零的前100家公司。这是在节点中完成的,所以它是一个字符串,我也在传递参数。开始日期是365天前的日期 当我运行它时,它不会抛出任何错误,但是它也不会返回任何数据 getMostSales365NoneBefore(startDate) { let sqlQuery = ''; sqlQuery = "SELECT TOP 100 SUM(nQuot

我在编写此sql查询时遇到问题。基本上,我需要找到在过去365天内NSALE最多,但在365天之前销售为零的前100家公司。这是在节点中完成的,所以它是一个字符串,我也在传递参数。开始日期是365天前的日期

当我运行它时,它不会抛出任何错误,但是它也不会返回任何数据

  getMostSales365NoneBefore(startDate) {
    let sqlQuery = '';

    sqlQuery =
      "SELECT TOP 100 SUM(nQuoteTotal) AS nSales, sCompany FROM Customer_Quotes WHERE (bDeleted=0 AND sStatus='Closed' AND dtFirstClosed > " +
      "'" +
      startDate +
      "')" +
      ' AND (nSales < ' +
      "'" +
      startDate +
      "') IS NOT NULL" +
      ' GROUP BY sCompany ORDER BY nSales DESC';

    console.log(sqlQuery);

    return sqlQuery;
  }, ```
getMostSales365NoneBefore(开始日期){
让sqlQuery='';
sqlQuery=
“从客户报价中(b删除=0,sStatus='Closed'和dtFirstClosed>)选择前100名总和(nNoteTotal)作为nSales,s公司”+
"'" +
起始日期+
"')" +
"及(nSales)"+
"'" +
起始日期+
“')不为空”+
“nSales DESC发布的集团公司订单”;
log(sqlQuery);
返回sqlQuery;
}, ```

您应该正确地参数化查询,并将
@startDate
作为参数传递。

请注意,您不能在
的WHERE
部分中引用聚合,只能在
HAVING
ORDER BY
SELECT

您想要的查询如下所示

选择顶部(100)
作为nSales的总和(dtFirstClosed>=@startDate然后nNoteTotal END时的情况),
斯考尼
来自客户的报价
其中b删除=0
而sStatus=‘关闭’
按公司分组
有计数(dtFirstClosed<@startDate然后是1 END时的情况)=0
nSales DESC订购

我假设这是浏览器中的javascript?这是节点中的sql查询,它传递给npm包MSSQL您没有传递参数,您正在连接中的值,您永远不应该这样做