【问题标题】:(Microsoft) SQL: grab data from a multiple columns conditionally(Microsoft) SQL:有条件地从多个列中获取数据
【发布时间】:2013-06-16 02:59:03
【问题描述】:

我刚开始使用 SQL。数据存储在三个表中。下面给出一个例子...

表 1:产品系列

栏目:产品系列

TABLE2:设施

栏目:位置

TABLE3:表带

栏目:建厂 栏目:产品系列 列:2012 年完整单位 w/C 列:2013 年完整单位 w/C 列:2014 年完整单位 w/C 列:2015 年完整单位 w/C 列:2016 年完整单位 w/C 栏目:2017 年完整单位 w/C 专栏:2018 年完整单位 w/C

如果...存储在“位置”中的任何文本值与“建筑工厂”中的给定文本值匹配并且如果存储在“产品系列”中的任何文本值与“产品类型”中的给定文本值匹配

然后...获取相应行中“201X Full Units w/C:”七列的内容,并构建一个由它们及其匹配的“位置”和“产品系列”值组成的新表。

我的查询:

select facility.location, ProductFamily.productfamily, strap.[2012 Full Units w/C], [2013 Full Units w/C],  strap.[2014 Full Units w/C],  strap.[2015 Full Units w/C], [2016 Full Units w/C], strap.[2017 Full Units w/C], strap.[2018 Full Units w/C]
from facility, ProductFamily
inner join strap on ProductFamily.productfamily = strap.[prod series]
inner join facility on strap.[build plant] = facility.location;

我不确定查询是否会完成我想要的,它还会给出语法错误(缺少运算符)

【问题讨论】:

  • 尝试将 from facility, ProductFamily 更改为 from ProductFamily(保留连接) - 仍然出现错误吗?
  • 是的,改了之后还是报错
  • 所以我的查询也仍然报错?

标签: database tsql join


【解决方案1】:

我认为你的问题在这里:

from facility, ProductFamily

我会这样写查询:

select F.location, P.productfamily, S.[2012 Full Units w/C],
    S.[2013 Full Units w/C],  S.[2014 Full Units w/C], S.[2015 Full Units w/C], 
    S.[2016 Full Units w/C], S.[2017 Full Units w/C], S.[2018 Full Units w/C]
from strap S
inner join ProductFamily P on S.[prod series] = P.productfamily
inner join facility F on S.[build plant] = F.location;

(我不喜欢表名和列名中的空格)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2017-04-28
    • 2022-01-01
    相关资源
    最近更新 更多