在SQL Server中按子查询分组

沙申克

我有一个表,并希望按动态生成的列对记录进行分组。如我的查询中所说,它是newcol。在执行此查询时,我收到错误:

选择列表中的“ SalesProductDetails.ProductId”列无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。

这是我尝试过的查询

select tbl.nwecol,tbl.ProductId,tbl.Products_Name,tbl.Qunatity,tbl.SKUCode
from (
    select SPD.ProductID,
        PR.SKUCode,
        PR.Products_Name,
        sum(SPD.Qunatity) as Qunatity, 
        cast(round(((SPD.BasePrice*SPD.Qunatity)+STD.SalesTaxAmt)/SPD.Qunatity,2) as numeric(36,2)) as nwecol,
        SM.Isactive
    from SalesProductDetails SPD
    join SalesMaster SM
        on SPD.SalesId=SM.SalesId
    join Sales_TaxDetails STD
        on SPD.ProductSalesID=STD.ProductSalesID
    join Products Pr
        on Pr.ProductID=SPD.ProductId
    where SPD.Isactive=1
        and SM.Isactive=1
        and SPD.ProductId=1
) as tbl
group by tbl.nwecol,tbl.ProductId,tbl.Products_Name,tbl.Qunatity,tbl.SKUCode
dl

认为您要执行的操作是根据您生成的列(nwecol)计算总和。在这种情况下,您需要将聚合(SUM)移到子查询之外,如下所示:

select tbl.nwecol,tbl.ProductId,tbl.Products_Name,tbl.SKUCode,
    SUM(tbl.Qunatity)
from (
    select SPD.ProductID,
        PR.SKUCode,
        PR.Products_Name,
        SPD.Qunatity
        cast(round(((SPD.BasePrice*SPD.Qunatity)+STD.SalesTaxAmt)/SPD.Qunatity,2) as numeric(36,2)) as nwecol,
        SM.Isactive
    from SalesProductDetails SPD
    join SalesMaster SM
        on SPD.SalesId=SM.SalesId
    join Sales_TaxDetails STD
        on SPD.ProductSalesID=STD.ProductSalesID
    join Products Pr
        on Pr.ProductID=SPD.ProductId
    where SPD.Isactive=1
        and SM.Isactive=1
        and SPD.ProductId=1
) as tbl
group by tbl.nwecol,tbl.ProductId,tbl.Products_Name,tbl.SKUCode

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL Server中按顺序分组

来自分类Dev

在SQL Server中按子查询分组

来自分类Dev

在SQL中按&分组

来自分类Dev

SQL查询:按不同表中的多个列分组

来自分类Dev

sql按子组分组

来自分类Dev

如何在SQL查询中按最小值分组?

来自分类Dev

SQL查询如何在表中按名称分组

来自分类Dev

如何使用SQL Server在查询中按天将结果分组?

来自分类Dev

Oracle按SQL查询按组分组

来自分类Dev

SQL查询按范围分组

来自分类Dev

SQL查询按条款分组

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

在SQL Server中按顺序分组

来自分类Dev

SQL Server:如何按子字符串分组

来自分类Dev

按子句分组和排序中的SQL查询错误

来自分类Dev

在SQL查询中按分组

来自分类Dev

在SQL Server查询中按>分割

来自分类Dev

SQL Server查询以查找按一列分组但在其他至少一列中不同的值

来自分类Dev

在SQL Server中按查询分组返回重复项

来自分类Dev

在SQL Server中按count()子句分组

来自分类Dev

在SQL Server中按班次查询总和

来自分类Dev

SQL和按查询分组

来自分类Dev

在SQL Server中按范围分组

来自分类Dev

在SQL Server分组中使用子查询

来自分类Dev

Access SQL:如何从视图分组(Access SQL 中的子查询)?

来自分类Dev

条件分组按 sql 查询

来自分类Dev

T-SQL 中的子查询分组