Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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 select语句_Sql - Fatal编程技术网

使用具有不同条件的多个SQL select语句

使用具有不同条件的多个SQL select语句,sql,Sql,我正在制作一份报告,为每位员工输出不同的统计数据。我的老板想看看发订单需要多长时间。我们是一家在线零售商,处理从单一商品到成百上千的订单。超过12项的订单被视为“批量”订单,其他订单被视为“小型”订单。用于计算的所有数据都来自同一个表,但提取数据的限制不同 这些是他想要收集的每一条数据的要求 SELECT AVG(bulkFTS) as bulkMODFTS FROM cartHead WHERE rateFactor <> -1 AND rateFactor <> 0

我正在制作一份报告,为每位员工输出不同的统计数据。我的老板想看看发订单需要多长时间。我们是一家在线零售商,处理从单一商品到成百上千的订单。超过12项的订单被视为“批量”订单,其他订单被视为“小型”订单。用于计算的所有数据都来自同一个表,但提取数据的限制不同

这些是他想要收集的每一条数据的要求

SELECT AVG(bulkFTS) as bulkMODFTS
FROM cartHead
WHERE  rateFactor <> -1 AND rateFactor <> 0 AND bulkStartDate <> NULL
选择平均值(bulkFTS)作为bulkMODFTS
从车头
其中rateFactor-1和rateFactor 0以及bulkStartDate为NULL

选择count(idOrder)作为totalOrders
从车头
其中rateFactor-1

选择count(idOrder)作为overFTS
从车头
其中smallFTS>27,rateFactor-1,rateFactor 0,bulkGlassCount=''

选择四舍五入(总和(比率因子),1)作为总因子
从车头
其中rateFactor-1和rateFactor 0

选择轮(平均(FTStime),2)作为avgFTS
从车头
其中rateFactor-1和rateFactor 0以及bulkGlassCount=“”
它们还必须限制为“其中graphicsTeam=x和ordercompletedate介于date1和date2之间”


有没有一个简单的方法可以做到这一点?我试图将每一个都设置在自己的函数中,但它不仅需要花费难以置信的长时间来加载,而且无法持续工作。许多限制相互交叉,但每一个限制都需要不同的条件才能使数字准确。

在一个查询中实现这一点。大概是这样的:

SELECT AVG(CASE WHEN bulkStartDate <> NULL THEN bulkFTS END) as bulkMODFTS,
       count(idOrder) as totalOrders
       count(case when rateFactor <> 0 AND smallFTS > 27 and bulkGlassCount = '' then idOrder end) as overFTS
      round(SUM(CASE WHEN rateFactor <> 0 AND THEN rateFactor END), 1) as totalFactors,
       ROUND(AVG(CASE WHEN rateFactor <> 0 AND bulkGlassCount = '' THEN FTStime END), 2) as avgFTS
FROM cartHead
WHERE rateFactor <> -1 AND 
      graphicsTeam = x AND ordercompletedate BETWEEN date1 AND date2"
选择平均值(bulkStartDate为空然后bulkFTS结束时的情况)作为bulkMODFTS,
将(idOrder)计数为totalOrders
计数(当rateFactor 0和smallFTS>27且bulkGlassCount=''时,则为idOrder end)作为溢出
四舍五入(总和(比率因子为0,然后比率因子结束时的情况),1)作为totalFactors,
四舍五入(平均值(rateFactor 0和bulkGlassCount=''然后FTStime END时的情况),2)作为平均GFTS
从车头
其中rateFactor-1和
GraphicsSteam=x和ordercompletedate在date1和date2之间”

您使用的是哪一个数据库?动态查询是一种方法。您使用的是哪一个数据库,您是如何提取数据的,以及您到底想做什么?您是想在一个表中获得所有结果,还是想让您在不同的条件下轻松获得单个结果?
SELECT count(idOrder) as overFTS
FROM cartHead
WHERE smallFTS > 27 AND rateFactor <> -1 AND rateFactor <> 0 AND bulkGlassCount = '' 
SELECT round(sum(rateFactor),1) as totalFactors
FROM cartHead
WHERE rateFactor <> -1 AND rateFactor <> 0 
SELECT ROUND(AVG(FTStime),2) as avgFTS
FROM cartHead
WHERE rateFactor <> -1 AND rateFactor <> 0 AND bulkGlassCount = ''
SELECT AVG(CASE WHEN bulkStartDate <> NULL THEN bulkFTS END) as bulkMODFTS,
       count(idOrder) as totalOrders
       count(case when rateFactor <> 0 AND smallFTS > 27 and bulkGlassCount = '' then idOrder end) as overFTS
      round(SUM(CASE WHEN rateFactor <> 0 AND THEN rateFactor END), 1) as totalFactors,
       ROUND(AVG(CASE WHEN rateFactor <> 0 AND bulkGlassCount = '' THEN FTStime END), 2) as avgFTS
FROM cartHead
WHERE rateFactor <> -1 AND 
      graphicsTeam = x AND ordercompletedate BETWEEN date1 AND date2"