2012-04-05 66 views
1

所以我已经交了一个数据库,我需要做一些报告来找出每场遭遇的成本。它基本上是这样的:在第二个表中将N列中的值乘以N列?

ID  ItmQty1 ItmQty2 ItmQty3 etc... 
1  3    1  0 

我需要乘以通过一个价格表,像这样得到的总成本:

ItmCost1 ItmCost2 ItmCost3 etc... 
21.50   10.75  3.53 

,并希望与像一个结果结束

ID ItmQty1 ItmTTL1 ItmQty2 ItmTTL2  ... EncounterTTL 
1  3  64.50   1  10.75     75.25 

只是不确定联接如何与表之间的多对一关系一起工作。

这将在SQL Server 2008和SSRS上完成。

+0

真的有一个系列在价格表中的列通过'itemcostn'称为'itmcost1'?而且,如果是这样,那么'n'是什么? – Sorpigal 2012-04-05 18:17:31

+0

虽然它们实际上是ITEMNAMECost,并没有编号=(有大约30个项目 – Thildemar 2012-04-05 18:18:57

+0

SQL出错的另一个例子:(是否有可能“从更好的来源获得它”?否则,它是必要的编码!(无论做什么) – 2012-04-05 18:19:48

回答

2

那么,你的模式有点不正规(至少可以这样说),但它是可行的:

SELECT 
    i.ID 
, i.ItmQty1 
, i.ItmQty1 * c.ItmCost1 as ItmTTL1 
, i.ItmQty2 
, i.ItmQty2 * c.ItmCost2 as ItmTTL2 
, i.ItmQty3 
, i.ItmQty3 * c.ItmCost3 as ItmTTL3 
-- and so on 
FROM Items i 
JOIN Costs c on 1=1 
+0

这是否会工作考虑到公关冰表只有一行?该ID将只匹配项目表中的一行... – Thildemar 2012-04-05 18:29:55

+0

@Thildemar哦,我没有注意到你的价格没有ID ...看看修复,它应该做的伎俩。 – dasblinkenlight 2012-04-05 18:33:12

+0

工作。我只希望在这些应用程序的某些应用程序中没有更多的SQL。其他表格=( – Thildemar 2012-04-05 19:42:55

相关问题