そのため、以下のクエリを作成しましたが、結果セットで問題が発生しています。私が現在この問題を解決する方法を知っている唯一の方法は、複数のビューを作成し、いくつかの左結合を行うことですが、これは最も効率の悪い方法だと思います。いくつかの行を取得して列に変換する必要がありますが、その方法がわかりません。
use TSTCO
GO
select job.MANUFACTUREORDER_I as MONumber, job.ENDDATE as DueDate, job.ITEMNMBR, item.ITEMDESC, MANUFACTUREORDPRI_I as MOPriority, bom.CPN_I,
item2.ITEMDESC
from WO010032 job
left join iv00101 item on job.ITEMNMBR=item.ITEMNMBR
left join BM010115 bom on bom.PPN_I = job.ITEMNMBR and bom.BOMNAME_I = job.BOMNAME_I
left join iv00101 item2 on bom.CPN_I = item2.ITEMNMBR
where MANUFACTUREORDER_I like '2007-13580'
and (item2.itemdesc like '10:%' or item2.itemdesc like '09:%' or item2.itemdesc like '101:%' or item2.itemdesc like '12:%' or item2.itemdesc like '13:%' or item2.itemdesc like '131:%' or item2.itemdesc like '14:%' or item2.itemdesc like '15:%' or item2.itemdesc like '16:%' or item2.itemdesc like '17:%' or item2.itemdesc like '18:%' or item2.itemdesc like '21:%' or item2.itemdesc like '22:%' or item2.itemdesc like '23:%' or item2.itemdesc like '24:%')
Order by item2.Itemdesc
私の現在の結果セットは次のようになります。
MONumber DueDate ITEMNMBR ITEMDESC MOPriority CPN_I ITEMDESC
------------------------------- ----------------------- ------------------------------- ----------------------------------------------------------------------------------------------------- ---------- ------------------------------- -----------------------------------------------------------------------------------------------------
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 JP1903-000 10: PFP Lycra/H 5219
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 JP2203-000 10: Std 88/12 Lycra:White
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 Z-GRAPHIC DESIGN 15 SHOTGUN 12: Z-Graphic Design 15 Shotgun
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 Z-PANEL A BLACK 13: Panel A Black
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 Z-PANEL B BROWN 13: Panel B Brown
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 Z-PANEL C CARDINAL 13: Panel C Cardinal
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 Z-NECK TRIM BLACK 14: NeckTrim Black
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 Z-THREAD FLATLOCK:BROWN 16: Flatlock Thread Color:Brown
私はそれがどのように見えることを望みます:
MONumber DueDate ITEMNMBR ITEMDESC MOPriority FABRIC Graphic Panel A Panel B Panel C Neck Trim Flatlock Thread
------------------------------- ----------------------- ------------------------------- --------------------------------- ---------- --------------------------------- --------------------------------- -------------------- -------------------- -------------------- ------------------- --------------------------------
2007-13580 2013-11-08 00:00:00.000 111.3101 High Cut Full Back, Gripper Leg 2 10: PFP Lycra/H 5219 12: Z-Graphic Design 15 Shotgun 13: Panel A Black 13: Panel B Brown 13: Panel C Cardinal 14: NeckTrim Black 16: Flatlock Thread Color:Brown
誰かが私のために何かをしてくれるとは思っていませんが、いくつかのガイダンスをいただければ幸いです。Pivot から始める必要があるかもしれませんが、よくわかりません。PIVOT 構文を調べたとき、どこから始めればよいかよくわかりませんでした。コードの最初のブロックからわかるように、列は常に特定の数字で始まります。ファブリックは常に「10:」で始まります。番号の後のテキストは、変更する部分であり、返す必要があります。また、一部の列が最終的に「NULL」になることにも何の価値もありません。すべてにネック トリムなどがあるわけではないからです。
助けてくれてありがとう。