我想弄清楚如何编码某个子查询。我不断收到“子查询返回超过1个值”的错误。我需要查询父级订单的描述而不是子级。SQL子查询列其中名称包含值
实施例:
父订单:100-01 儿童订单:100-02,100-03
每个订单具有描述。但是,在一个专栏中,我需要家长的描述:
WHERE [ORDER] LIKE '%-01'
当前代码如下:
SELECT NAME as [Job],
[Master Job Desc] = (SELECT TOP 1 [DESCR] FROM TABLE WHERE [NAME] LIKE '%-01'),
LEFT(or_order.descr,30) as [Description],
FROM TABLE
ORDER BY OR_ORDER.DELIVERY asc, or_op.STARTSEC asc
有什么建议?谢谢
编辑:我忘了,我已经尝试添加TOP 1到子查询,但它只是返回整个列相同的值。我不想那样,我想找到父母的工作订单。
编辑2:这是我正在寻找的单独的SQL。
SELECT [DESCR] FROM [Or_Order] WHERE [NAME] LIKE '%-01'
上述语句返回名称包含父作业号(-01)的描述。我需要在一个专栏中。
如何这些订单命名?连字符之前的数字是唯一的交易号码和01,02等线/子号码? – Kevin
订单被命名为他们显示。示例“100-01”是父作业。 “100-02”是一个不同的工作,但它是“100-01”的孩子。它们在表格中是分开的行。 – Datallboy
在我看来,你在这里苦苦挣扎,因为你的数据通过将两个数据点填入单个列而违反了1NF。如果这两个值在两列中而不是一列中的两个值,这将更容易。如果可能的话,你应该改变设计......当然这并不总是可能的,我们必须摔倒以前不太理想的决定。 –