2017-07-30 3 views
0

私は、Excelファイル内のファイルやフォルダのディレクトリをプリントアウトしています。ディレクトリの末尾のフォルダ名は、Excelファイル内の別の列のエイリアスと一致します。異なる長さを持つ別の列の値をExcelファイルにディレクトリ名に参加しようと

私は右の加入を使用して、それらを一緒に参加しようとしています。これは、Excelファイルをリンクテーブルとして使用してアクセスし、そのファイルのエイリアスに従ってディレクトリを一覧表示しようとしています。

私は1つの列内の値のLenを取得しようとクエリで、私は構文エラーがエラーを取得しています参加することを置きます。

ここにクエリがあります。部分文字列を使用する必要があるかどうかわかりません。

SELECT [General Acccounts].[Account #], [General Acccounts].[Account Name], 
[General Acccounts].[Customer Alias], [General Acccounts].[Start Date] 
FROM EOM_On_Hand_Counter LEFT JOIN [General Acccounts] ON 
Right(EOM_On_Hand_Counter.DirectoryName,)(len([General Accounts].[Customer 
Alias])) = [General Acccounts].[Customer Alias] 
GROUP BY [General Acccounts].[Account #], [General Acccounts].[Account Name], [General Acccounts].[Customer Alias], [General Acccounts].[Start Date]; 

あなたは、私は、彼らが一致しているため、一般的な勘定テーブルの顧客エイリアス値にディレクトリ名の右側に参加したい見ることができます。 AccessでLen関数を使用すると、SQLクエリ内では機能しません。誰にも何か提案はありますか? \管理者\ EOM \私は、次の操作を行うことができます:ディレクトリ名が固定長秒なので

+0

'Right()'関数でカンマの直後の閉じかっこを削除します。 – Parfait

+0

@ Parfaitはこれを試して、結合操作で構文エラーと言っています。私は(右のコンマの後に除去され、LEN演算子をしました。 'SELECT [一般Acccounts]。[アカウント番号]、[全般Acccounts]。[アカウント名]、[全般Acccounts]。[カスタマーエイリアス] FROM [一般Acccounts ] INNERはEOM_On_Hand_Counter ON [一般Acccounts]。[カスタマーエイリアス] =右(EOM_On_Hand_Counter.DirectoryName、レン([一般会計]。[アカウント名])) GROUP BY [一般Acccounts]を登録しよう。[アカウント番号]、[全般Acccounts ] [私たちが再現できるように、アカウント名]、[全般Acccounts] [カスタマーエイリアス] ' – Atlas80808

+0

は、両方のテーブルのデータ例を提供してください – Parfait

答えて

0

SELECT [General Acccounts].[Customer Alias], 
EOM_On_Hand_Counter.DirectoryName, EOM_On_Hand_Counter.FileName, 
EOM_On_Hand_Counter.DateCreated 
FROM [General Acccounts] INNER JOIN EOM_On_Hand_Counter ON [General 
Acccounts].[Customer Alias] = mid(EOM_On_Hand_Counter.DirectoryName,15,20) 
GROUP BY [General Acccounts].[Customer Alias], 
EOM_On_Hand_Counter.DirectoryName, EOM_On_Hand_Counter.FileName, 
EOM_On_Hand_Counter.DateCreated; 

最長の顧客の別名とクエリの20を補償最後に長さを残して何を返します。私はそれが必要です。

関連する問題