Sql 如何获得在过去365天内购买最多但以前没有购买的客户?
我在编写此sql查询时遇到问题。基本上,我需要找到在过去365天内NSALE最多,但在365天之前销售为零的前100家公司。这是在节点中完成的,所以它是一个字符串,我也在传递参数。开始日期是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
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您没有传递参数,您正在连接中的值,您永远不应该这样做