2

そのため、以下のクエリを作成しましたが、結果セットで問題が発生しています。私が現在この問題を解決する方法を知っている唯一の方法は、複数のビューを作成し、いくつかの左結合を行うことですが、これは最も効率の悪い方法だと思います。いくつかの行を取得して列に変換する必要がありますが、その方法がわかりません。

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」になることにも何の価値もありません。すべてにネック トリムなどがあるわけではないからです。

助けてくれてありがとう。

4

1 に答える 1

0

1 つまたは 2 つの CTE フリストを使用してデータを準備し、次に動的ピボット クエリを使用してはどうですか。

以下のリンクを参照してください。これは、シナリオに役立つか、少なくとも手がかりになる可能性があります。

動的ピボット クエリを作成するスクリプト

于 2013-11-29T08:39:21.940 に答える