代码之家  ›  专栏  ›  技术社区  ›  loki

如何在Linq中使用“coalesce(sum…”?

  •  0
  • loki  · 技术社区  · 16 年前

    我试着用和合并。如何翻译成LINQ?

     SELECT @SumQtyOut=COALESCE(SUM(Qty),0) FROM dbo.StockMovement WHERE FromLocationType=@FromLocationType AND
             * FromNo=@FromNo AND FromSeq=@FromSeq AND ItemTypeNo=@ItemTypeNo AND ItemID=@ItemID

    我做了一些事情:

     using (StockProcedureDataContext stock = new StockProcedureDataContext())
                    {
                        SumQtyOut = from s in stock.StockMovements 
                                    where s.FromLocationType == FromLocationType &&
                                    s.FromNo== FromNo && 
                                    s.FromSeq == FromSeq &&
                                    s.ItemTypeNo == ItemTypeNo &&
                                    s.ItemID == ItemID select 
                    }
    1 回复  |  直到 16 年前
        1
  •  0
  •   AxelEckenberger    16 年前

    这段代码应该产生您正在寻找的结果。

    using (StockProcedureDataContext stock = new StockProcedureDataContext())
    {
        var items = from s in stock.StockMovements 
                    where s.FromLocationType == FromLocationType &&
                    s.FromNo== FromNo && 
                    s.FromSeq == FromSeq &&
                    s.ItemTypeNo == ItemTypeNo &&
                    s.ItemID == ItemID 
                    select s.Qty ?? 0;
        SumQtyOut = items.Sum(x => x);
    }
    

    select s.Qty ?? 0 返回0如果 s.Qty null . items.Sum(x => x) 汇总您选择的数量。

    推荐文章