Sql 带计算列的Where子句
您好,我想在这里添加一个条件,如Sql 带计算列的Where子句,sql,Sql,您好,我想在这里添加一个条件,如where Date介于..和salercentage>50之间,但它salercentage不是db中的一列,它只是像下面的代码中一样强制转换 我怎么用呢。提前谢谢 var sql = @"SELECT TOP 10 sp.ProductName, SUM(sp.QtySold) AS QtySold, SUM(r.QtyinP
where Date介于..
和salercentage>50之间,但它salercentage不是db中的一列,它只是像下面的代码中一样强制转换
我怎么用呢。提前谢谢
var sql = @"SELECT TOP 10
sp.ProductName,
SUM(sp.QtySold) AS QtySold,
SUM(r.QtyinPieces) AS StockLimit,
CAST( (CAST (SUM(sp.QtySold) AS FLOAT) / CAST(SUM(r.QtyinPieces) AS FLOAT) ) * 100 AS DECIMAL(8,2) ) [SalesPercentage]
FROM
Sales_productholder sp
JOIN Orders_productholder r ON (sp.ProductID = r.ProductID)
GROUP BY
sp.ProductName, r.ProductID, r.QtyinPieces
ORDER BY
SUM(sp.QtySold) DESC";
更新:我有一个组合框,里面有像5、10、20这样的项目,我想把它作为Top5
的参数。但它总是导致错误顶部附近的语法错误
以下是我尝试过的:
选择TOP@TOP
command.Parameters.AddWithValue("@Top", cboTop.SelectedItem.ToString());
及
您可以像这样添加具有
HAVING
CAST( (CAST ( SUM(sp.QtySold) AS FLOAT) / CAST(SUM(r.QtyinPieces) AS FLOAT) ) * 100 AS DECIMAL(8,2) ) > 50
所有查询:
SELECT TOP 10
sp.ProductName,
SUM(sp.QtySold) AS QtySold,
SUM(r.QtyinPieces) AS StockLimit,
CAST( (CAST ( SUM(sp.QtySold) AS FLOAT) / CAST(SUM(r.QtyinPieces) AS FLOAT) ) * 100 AS DECIMAL(8,2) ) [SalesPercentage]
FROM
Sales_productholder sp
JOIN Orders_productholder r ON (sp.ProductID = r.ProductID)
WHERE [Date] between @DateBegin and @DateAdd
GROUP BY
sp.ProductName, r.ProductID, r.QtyinPieces
HAVING
CAST( (CAST ( SUM(sp.QtySold) AS FLOAT) / CAST(SUM(r.QtyinPieces) AS FLOAT) ) * 100 AS DECIMAL(8,2) ) > 50
ORDER BY
SUM(sp.QtySold) DESC
您可以像这样添加具有
HAVING
CAST( (CAST ( SUM(sp.QtySold) AS FLOAT) / CAST(SUM(r.QtyinPieces) AS FLOAT) ) * 100 AS DECIMAL(8,2) ) > 50
所有查询:
SELECT TOP 10
sp.ProductName,
SUM(sp.QtySold) AS QtySold,
SUM(r.QtyinPieces) AS StockLimit,
CAST( (CAST ( SUM(sp.QtySold) AS FLOAT) / CAST(SUM(r.QtyinPieces) AS FLOAT) ) * 100 AS DECIMAL(8,2) ) [SalesPercentage]
FROM
Sales_productholder sp
JOIN Orders_productholder r ON (sp.ProductID = r.ProductID)
WHERE [Date] between @DateBegin and @DateAdd
GROUP BY
sp.ProductName, r.ProductID, r.QtyinPieces
HAVING
CAST( (CAST ( SUM(sp.QtySold) AS FLOAT) / CAST(SUM(r.QtyinPieces) AS FLOAT) ) * 100 AS DECIMAL(8,2) ) > 50
ORDER BY
SUM(sp.QtySold) DESC
先生,你还在吗?我想补充一个问题。是的,我在这里,问题是什么?像这样写选择TOP(@TOP)
再次感谢您,先生。我已先将该项目转换为int,并与(@top)一起使用。非常感谢。先生,你还在吗?我想补充一个问题。是的,我在这里,问题是什么?像这样写选择TOP(@TOP)
再次感谢您,先生。我已先将该项目转换为int,并与(@top)一起使用。非常感谢。