在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查询中按分组

来自分类Dev

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

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

在SQL Server分组中使用子查询

来自分类Dev

T-SQL 中的子查询分组

来自分类Dev

在SQL Server中按顺序分组

来自分类Dev

在SQL Server中按顺序分组

来自分类Dev

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

来自分类Dev

在SQL Server中按范围分组

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

SQL查询按范围分组

来自分类Dev

SQL查询按条款分组

来自分类Dev

SQL和按查询分组

来自分类Dev

条件分组按 sql 查询

来自分类Dev

sql按子组分组

来自分类Dev

在SQL中按&分组

来自分类Dev

在SQL Server查询中按>分割

来自分类Dev

在SQL Server中按班次查询总和

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Oracle按SQL查询按组分组

来自分类Dev

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