Sql server 2008 Crystal report-单列中的2个逻辑

Sql server 2008 Crystal report-单列中的2个逻辑,sql-server-2008,Sql Server 2008,我们在Crystal report中有一个要求,即我们必须在一列中实现两个概念。 例如:在下面的屏幕截图中,  如果我们有数字,我们需要汇总并显示为一行。  如果是可变行。它应该保持为单行 Material Quantity Price O Ring 1 5.61 O Ring 1 Fixed O Ring 1 5.61 O Ring 1 Fixed

我们在Crystal report中有一个要求,即我们必须在一列中实现两个概念。 例如:在下面的屏幕截图中,  如果我们有数字,我们需要汇总并显示为一行。  如果是可变行。它应该保持为单行

Material    Quantity    Price
O Ring      1           5.61
O Ring      1           Fixed 
O Ring      1           5.61
O Ring      1           Fixed
产出应该是,

Material    Quantity    Price
O Ring      1           11.22
O Ring      1           Fixed 
O Ring      1           Fixed

如果有任何建议,请给我们一些建议。

首先请注意,您当前的表格设计存在很大缺陷,因为您试图将数字和文本信息存储在同一价格列中,两者都作为文本。这意味着要对任何价格进行汇总,我们必须转换为一个数字,然后再转换回文本以报告其他纯文本值。您最好不要在Price列中存储文本,并将该列设置为数字

也就是说,下面的查询似乎满足了您的要求:

SELECT
    Material, MAX(Quantity) AS Quantity,
    CAST(SUM(CAST(Price AS numeric(9,2))) AS varchar(15)) AS Price
FROM yourTable
WHERE Price <> 'Fixed'
GROUP BY Material
UNION ALL
SELECT Material, Quantity, Price
FROM yourTable
WHERE Price = 'Fixed';

这是报告的现有功能。你能帮我修改一下以获得期望的输出吗。如果不是Val{sm07.FNSM07StructLineNo}0和Trim{sm07.FNSM07NodeID_BOM_SM},那么如果{sm07.FNSM07InclFixPrice}=0或{InvParameters.fnivParametersFixPrimaticu}=0,则使用文本{CalcMaterial.fncMaterialOrderDiscount},{CalcTotals.fncTotalSammdec}修复其他问题