Sql 如何选择第一个值和其他值之和
我有这个问题,但我需要调整它Sql 如何选择第一个值和其他值之和,sql,Sql,我有这个问题,但我需要调整它 SELECT STR_NAME , CNT_ITEM as 'Code', TI_NAME as 'Item' , UOM_CODE as UOM, sum(CNT_OPEN) as 'ActBeg', In column i dont need to SUM it i need to get here the value for the first of the selected date (in this ca
SELECT
STR_NAME ,
CNT_ITEM as 'Code',
TI_NAME as 'Item' ,
UOM_CODE as UOM,
sum(CNT_OPEN) as 'ActBeg', In column i dont need to SUM it i need to get here the value for the first of the selected date (in this case i need value for 2020-01-01)
sum(CNT_RCV )as 'Receiving',
sum (CNT_TRIN) as 'TransIN',
sum (ISNULL(CNT_DSD,0) + ISNULL(CNT_PROD,0)) AS 'PROD',
sum(CNT_VOID ) as 'Void' ,
sum (CNT_SOLD ) as 'Sales',
sum (CNT_TROUT ) as 'TransOUT',
Sum (CNT_CONS) AS 'BatchRMat',
SUM (ISNULL(CNT_USAGE,0) + CNT_WASTE) as 'WASTE' ,
sum (CNT_CLOSEC ) as 'TheoEnd' ,
sum (CNT_CLOSE ) as 'ActEnd',
sum ((ISNULL(CNT_OPEN,0) - ISNULL(CNT_OPENC,0)) + (ISNULL(CNT_CLOSE,0) - ISNULL(CNT_CLOSEC,0)))
AS 'VARIANCE',
SUM ((ISNULL(CNT_OPEN,0) - ISNULL(CNT_OPENC,0)) + (ISNULL(CNT_CLOSE,0) - ISNULL(CNT_CLOSEC,0)) *
CNT_COST) as 'VCost',
CNT_COST as 'Cost'
FROM
CR_QC_COUNT LEFT JOIN
CR_STORE ON STR_COMPANY = CNT_COMPANY AND STR_BRAND = CNT_BRAND AND STR_NO = CNT_STR_ID LEFT JOIN
CR_QC_TRACK ON TI_COMPANY = CNT_COMPANY AND TI_BRAND = CNT_BRAND AND TI_ID = CNT_ITEM LEFT JOIN
CR_QC_UOM ON UOM_COMPANY = CNT_COMPANY AND UOM_BRAND = CNT_BRAND AND UOM_ID = TI_PUOM
WHERE
CNT_COMPANY = 1 AND CNT_BRAND = 1 AND CNT_DOB BETWEEN '2020-01-01' AND '2020-01-16' AND CNT_STR_ID IN (41) and TI_NAME IS NOT NULL and (CNT_SOLD !=0 or CNT_CONS!=0)
group by
STR_NAME,CNT_ITEM ,TI_NAME ,UOM_CODE,CNT_COST
order by
STR_NAME , CNT_ITEM
如果我正确理解了这个问题,您可能需要在下面的查询中包含相关子查询,以获得2020-01-01上的CNT_开放值-
因为你在这里没有提到任何alise,所以我只是试着猜一下这里的表名和列名。您可以根据自己的要求更改条件。使其易于帮助您,简化问题-。首先在关系数据库中没有意义,除非您还指定了用于排序数据的内容。你的意思是“第一”还是“最低”?谢谢,我只需要指定时间段内的第一天的值。如果你愿意,我可以在团队或任何其他会议地点共享我的屏幕。你使用的是哪种产品?SQL只是一种查询语言,不是特定数据库产品的名称,您的查询是无效的标准SQL。请为您正在使用的数据库产品添加。
SELECT
STR_NAME ,
CNT_ITEM as 'Code',
TI_NAME as 'Item' ,
UOM_CODE as UOM,
(SELECT CNT_OPEN
FROM CR_QC_COUNT
WHERE CNT_COMPANY = 1
AND CNT_BRAND = 1
AND CNT_DOB = DATE '2020-01-01') as 'ActBeg', --In column i dont need to SUM it i need to get here the value for the first of the selected date (in this case i need value for 2020-01-01)
sum(CNT_RCV )as 'Receiving',
sum (CNT_TRIN) as 'TransIN',
sum (ISNULL(CNT_DSD,0) + ISNULL(CNT_PROD,0)) AS 'PROD',
sum(CNT_VOID ) as 'Void' ,
sum (CNT_SOLD ) as 'Sales',
sum (CNT_TROUT ) as 'TransOUT',
Sum (CNT_CONS) AS 'BatchRMat',
SUM (ISNULL(CNT_USAGE,0) + CNT_WASTE) as 'WASTE' ,
sum (CNT_CLOSEC ) as 'TheoEnd' ,
sum (CNT_CLOSE ) as 'ActEnd',
sum ((ISNULL(CNT_OPEN,0) - ISNULL(CNT_OPENC,0)) + (ISNULL(CNT_CLOSE,0) - ISNULL(CNT_CLOSEC,0)))
AS 'VARIANCE',
SUM ((ISNULL(CNT_OPEN,0) - ISNULL(CNT_OPENC,0)) + (ISNULL(CNT_CLOSE,0) - ISNULL(CNT_CLOSEC,0)) *
CNT_COST) as 'VCost',
CNT_COST as 'Cost'
FROM
CR_QC_COUNT LEFT JOIN
CR_STORE ON STR_COMPANY = CNT_COMPANY AND STR_BRAND = CNT_BRAND AND STR_NO = CNT_STR_ID LEFT JOIN
CR_QC_TRACK ON TI_COMPANY = CNT_COMPANY AND TI_BRAND = CNT_BRAND AND TI_ID = CNT_ITEM LEFT JOIN
CR_QC_UOM ON UOM_COMPANY = CNT_COMPANY AND UOM_BRAND = CNT_BRAND AND UOM_ID = TI_PUOM
WHERE
CNT_COMPANY = 1 AND CNT_BRAND = 1 AND CNT_DOB BETWEEN '2020-01-01' AND '2020-01-16' AND CNT_STR_ID IN (41) and TI_NAME IS NOT NULL and (CNT_SOLD !=0 or CNT_CONS!=0)
group by
STR_NAME,CNT_ITEM ,TI_NAME ,UOM_CODE,CNT_COST
order by
STR_NAME , CNT_ITEM