2

SQL ステートメントで関数 concatrelated を使用すると問題が発生します。私は次のように取得したい:

私のデータは次のとおりです。

A.CABNRO E01.EXCCEX
90001 500
87000 400
90001 450
90001 300
87000 500
76005

取得したい:

A.CABNRO NEW FIELD
90001 500,450,300
87000 400,500
76005

次のコードは、concatrelated に関連するステートメントを含めると実行されません。誰かが私を助けることができれば、私は感謝します!!!

MYSQL = "SELECT A.CABFPR, A.CABCIA, A.CABCTR, B.CTRDTR, A.CABLOE, "
MYSQL = MYSQL & "A.CABNRO, A.CABCAR, A.CABFED, A.CABHOD, A.CABFEI, "
MYSQL = MYSQL & "A.CABHOI, A.CABFEF, A.CABHOF, A.CABFEE, A.CABHOE, "
MYSQL = MYSQL & "A.CABCCL, A.CABNEM, A.CABDEM "
MYSQL = MYSQL & "CONCATRELATED(EXCCEX, E01, A.CABNRO=E01.EXCNRO) "
MYSQL = MYSQL & "FROM BDYOBEL.AIPDTA.AIPCAB A "
MYSQL = MYSQL & "LEFT OUTER JOIN BDYOBEL.AIPDTA.AIPCTR B ON A.CABCIA=B.CTRCIA AND A.CABCTR=B.CTRCTR "
MYSQL = MYSQL & "LEFT OUTER JOIN BDYOBEL.AIPDTA.AIPEXC E01 ON A.CABNRO=E01.EXCNRO "
MYSQL = MYSQL & "WHERE A.CABCIA='LOR' AND A.CABFED>="
MYSQL = MYSQL & Chr$(39) & fini & Chr$(39) & "AND A.CABFED<=" & Chr$(39) & ffin & Chr$(39)
MYSQL = MYSQL & " AND (A.CABCTR='DM' OR A.CABCTR='L1' OR A.CABCTR='L5' OR A.CABCTR='LR') AND A.CABCAR<>'0'"
4

1 に答える 1

0

http://allenbrowne.com/func-concat.htmlに記載されてい ます

ConcatRelated 関数が 255 を超える文字を返し、それを別のレコードセットのソースとしてクエリで使用すると、Access のバグにより、残りの文字のガベージが返されることがあります。

これにより、コードが機能しない理由が説明される場合があります。
Access では、固定されていない数の列のデータを集計することはできません。あなたができる最善の方法は、このようなものを書き、テキスト エディターで列を結合することです。

TRANSFORM Sum(E01.EXCCEX) AS SumOfEXCCEX
SELECT A.CABNRO
FROM [BDYOBEL-AIPDTA-AIPCAB] AS A INNER JOIN [BDYOBEL-AIPDTA-AIPEXC] AS E01 ON 
  A.CABNRO = E01.EXCNRO
GROUP BY A.CABNRO
ORDER BY A.CABNRO DESC , E01.EXCCEX DESC 
PIVOT E01.EXCCEX;  

クエリを実行すると、サンプル データに対して次の結果が得られます アクセス出力のスクリーンショット

于 2012-10-29T10:53:09.303 に答える