2017-07-07 53 views
0

我一直在谷歌搜索整个下午我甚至不知道我怎么会说出我有这样的问题,所以谷歌或bing可能会理解它。所以,我有2个表(表和数据库设置不关我的事),一个是产品选择/ Inner将多个值从一个表格连接到单个行中

name, value, weight, weight unit of measure id, length, width, height, dimensions unit of measure id, description 

的细节,然后用计量单位及其ID另一个表中的值

如。

id, unit name 
1,  cm 
2, inches 
3,  lbs 
4,  kg 
5, feet  

我需要从产品表中选择,但用另一个表中的实际测量单位替换测量单位ID。

数据的模样

sm widgets, $10, 20, 3, 10, 10, 10, 1, small widgets 

我想要的结果出来像

sm widget, $10, 20, lbs, 10, 10, 10, cm, small widgets 
lg widget, $15, 50, kg, 10, 10, 10, inches, large widgets 

感谢任何见解你们可以给我

+0

另外:现在,一旦添加了“UnitType”,例如“长度”或“质量”,在单位表中可以进行尺寸分析!或者至少验证重量单位不是“Candlepower”。 (它应该是在单位表中有一个外键的另一个表中,另一个表为度量系统,例如''SI'',然后转换系数......) – HABO

+0

有趣的东西,它不是我的数据库,它由另一家公司为我们开发,我只是写它的报告,但我明白你的意思,很酷的东西 – ScottC

回答

2

我想你只需要加入表格并返回说明:

select 
    p.name, 
    p.value, 
    p.weight, 
    c.[unitname], 
    p.length, 
    p.width, 
    p.height, 
    c2.[unitname] as DimensionUnitName, 
    p.[description] 
from products p 
inner join unitcodetable c 
    on c.id = p.[weight unit of measure id] 
inner join unitcodetable c2 
    on c2.id = p.[dimensions unit of measure id] 
+0

是的,这很接近,但我需要两次测量单位,你的解决方案只有一次。所以第一个单元会正确地返回给我,但是我需要的长度宽度和高度的度量单位只是一个ID号。 如果我只是用'c。[unitname]替换它'我不认为它会工作,因为我如何指定哪个ID与每个单元名匹配? – ScottC

+0

哦,你了。调整答案以再次加入代码表并返回desc列。 – Jesse

+0

真棒,从来没有想过这个,好主意! – ScottC

相关问题