1

我有一个在 SQL Server 中运行的查询(使用 Visual Studio 19),但是当我尝试在 Excel 中使用 Microsoft Query 运行它时,出现错误

“没有为 'bv' 的第 5
列指定列名。“没有为 'bv' 的第 6 列指定列名。
“没有为 'bv' 的第 7 列指定列名。
无法准备语句。

在此处输入图像描述

正如您在下面看到的,我为第 5、6 和 7 列(Pieces、BatchValue、Multiplier)起了别名。此外,这个查询在 Visual Studio 中运行的事实表明我没有得到这个严重错误。

WITH bv AS 
(
    SELECT 
         b.BatchID, b.BatchDate, b.BatchName, b.Price AS Cost, 
         SUM(bh.QtyFound) AS Pieces, 
         SUM(ps.StrategyPrice * QtyFound) AS BatchValue, 
         IIF(b.Price = 0, 0, SUM(ps.StrategyPrice * QtyFound) / b.Price) AS Multiplier,
         b.Active 
     FROM 
         Inventory.Batches b
     JOIN 
         Inventory_Item_History_Summary bh ON b.BatchID = bh.BatchID
     JOIN 
         Selling.Price_Strategy_Table ps ON LEFT(bh.ItemType, 1) = LEFT(ps.ItemType, 1) 
                                         AND bh.ItemNum = ps.ItemNo 
                                         AND bh.ColorID = ps.Color 
                                         AND bh.BLCond = ps.Cond
     GROUP BY 
         b.BatchID, b.BatchDate, b.BatchName, Price, Active
)
SELECT 
    SUM(p.StrategyPrice * h.QtyFound) / SUM(p.StrategyPrice * IIF(bv.Multiplier = 0, 0, h.QtyFound / bv.Multiplier)) AvgMultiplier
FROM 
    Inventory.Locations l
JOIN 
    Inventory_Item_History_Summary h ON h.LocationID = l.LocationID 
JOIN 
    Selling.Price_Strategy_Table p ON LEFT(h.ItemType, 1) = LEFT(p.ItemType, 1) 
                                   AND h.ItemNum = p.ItemNo 
                                   AND h.ColorID = p.Color 
                                   AND h.BLCond = p.Cond
JOIN 
    bv ON h.BatchID = bv.BatchID 
WHERE 
    l.Cond = 'U' 
    AND bv.cost > 0 
    AND bv.Active = 0

我做错了什么导致它无法在 Microsoft Query 中运行?值得注意的是,我在同一个工作表上有另一个查询,它使用完全相同的 bv 子查询,没有问题

4

0 回答 0