长话短说,我对 T-SQL 相当陌生,我正在为我们的调度部门查询 JD Edwards 的一些信息。我们是一家制造工厂,包含我们的零件信息和制造每个零件的组件的表对所有组件使用单个列,每个组件都有多行,因此我们可以有一个包含 20 行的零件,我有两个这个查询的问题让我有点难过,第一个是我想在每个工作订单中看到一行,其中包含来自 WO 表的所有零件信息,我在以下查询中使用我们的成品零件编号:
此 WO 和成品的必要列的原始数据:
WALITM IXLITM WADOCO
TF2-10426IA CF-S1094P-UL 800059
TF2-10426IA CF-S1094P-UL 800059
TF2-10426IA CF-S1094P-UL 800059
TF2-10426IA CF-S1094P-UL 800059
TF2-10426IA TE2-06718 800059
TF2-10426IA TE2-06718 800059
TF2-10426IA TE2-06718 800059
TF2-10426IA TE2-06718 800059
TF2-10426IA RP-TR23 800059
TF2-10426IA RP-TR23 800059
TF2-10426IA RP-TR23 800059
TF2-10426IA RP-TR23 800059
TF2-10426IA RP-BX35 800059
TF2-10426IA RP-BX35 800059
TF2-10426IA RP-BX35 800059
TF2-10426IA RP-BX35 800059
(抱歉,今天显然是一个完整的 n00b,除了创建一个 HTML 表格之外,无法弄清楚如何将其格式化为表格)
SELECT WO, TF, TE, CAP, LABEL
FROM (SELECT DISTINCT Sched.dbo.TBS.WADOCO AS WO,
Sched.dbo.TBS.WALITM AS TF,
CASE WHEN Part.IXLITM LIKE 'TE%' THEN Part.IXLITM END AS TE,
CASE WHEN Part.IXLITM LIKE 'CF%' THEN Part.IXLITM END AS CAP,
CASE WHEN Part.IXLITM LIKE 'LBL%' THEN Part.IXLITM END AS LABEL
FROM WB.dbo.Part
INNER JOIN Sched.dbo.TBS ON TBS.WAAITM=Part.IXKITA) AS T2
WHERE WO=800059
哪个产生:
WO TF TE CAP LABEL
800059 TF2-10426IA NULL NULL NULL
800059 TF2-10426IA NULL CF-S1094P-UL NULL
800059 TF2-10426IA TE2-06718 NULL NULL
我已经进行了几次其他尝试,将所有内容组合在一条线上,但没有任何运气,但我认为类似于“Group By”的东西会是理想的......
这个查询的第二部分也让我有点难过,尽管我承认我在上面做了更多的工作,但我需要从 IXLITM 列中提取更多数据Where IXKITA=[The TE2***] for the TF2*** Number
。
我认为在这两个问题之间,我可能会寻找 T-SQL 之外的解决方案,但我想我会首先向各位专家寻求一些见解。
在此先感谢您的帮助,我们将不胜感激!