2014-10-02 71 views
0

原因很复杂,不会过度执行,但我正在根据物料清单进行成本核算报告。在SQL Server 2012中跨不同行的计算字段

BOMID  ItemID  Qty   Height Width Depth   Price 
111   component 2            0 
component wood   1   100  100  10    £3.69 

因此,大家可以看到,对于这个项目材料清单被称为111和内它,它使用2 x的组件。下面的行是该组件的详细信息。因此,对于每个项目,价格是3.69

我需要的是一种在上面的行上计算3.39数量为2的方法。这里的规则是ItemID对于其组件始终具有匹配的BOMID

我试图概括数据,使其更容易理解。

+0

告诉我们预期的类似上面的输出 – DevelopmentIsMyPassion 2014-10-02 08:53:20

+0

东西真的,但有场“总价格”显示价格*数量的商品ID的那个匹配bomID – JustAnAverageSQLuser 2014-10-02 09:05:17

+0

但是你想显示两行? – DevelopmentIsMyPassion 2014-10-02 09:14:04

回答

0

你可以做自联接

select *,(a.Qty * a.Price) as col1 from test a join test b on a.BOMID = b.ItemId 

这里是Sql Fiddle

+0

嗨,对不起,我对这个网站很陌生,接受它作为答案,我的查询结果令人印象深刻,因为“热情的业余爱好者!使用了一些像CTE和自我加入的好功能提到然后很多计算字段:)谢谢百万! – JustAnAverageSQLuser 2014-10-03 11:40:20

+0

@JustAnAverageSQLuser这很好,你用了很多其他的变化 – DevelopmentIsMyPassion 2014-10-03 12:23:44