1

MySQL テーブル18_8_ChartOfAccounts

AccountNumber  | VatReturnRowNumberForDebitTurnover
-------------------------------------------
 1             | 61
 2             | 55

MySQL テーブル2_1_journal

DebitAccount  | TransactionPartnerName | Amount
-----------------------------------------------
 1            |      Name1             | 55
 2            |      Name2             | 60

MySQL テーブル18_6_TransactionPartners

CompanyName
-------------------------------
 Name1
 Name2
 Name1

クエリ

SELECT 
AccountNumber,
DebitAccount, TransactionPartnerName, Amount,
CompanyName
FROM 18_8_ChartOfAccounts
LEFT JOIN 2_1_journal
ON AccountNumber = DebitAccount
LEFT JOIN 18_6_TransactionPartners
ON TransactionPartnerName = CompanyName
WHERE VatReturnRowNumberForDebitTurnover = '61' AND Amount = 55

このようなものを得るために必要な出力

TransactionPartnerName | Amount
-----------------------------------------
  Name1                | 55

ただし、表のよう18_6_TransactionPartnersに、2 つの名前Name1が取得されます

TransactionPartnerName | Amount
-----------------------------------------------
     Name1             | 55
     Name1             | 55

SELECT試した代わりにSELECT DISTINCT(同じ結果)。

ON TransactionPartnerName = CompanyName試行の代わりにON TransactionPartnerName = CompanyName LIMIT 1(構文エラーを取得)。

GROUP BY CompanyNameどこかで必要になるかもしれません。

ご意見をお聞かせください...

4

4 に答える 4

1

次のようなことを試してください:

SELECT 
    TransactionPartnerName, Amount
FROM 18_8_ChartOfAccounts
    LEFT JOIN 2_1_journal ON AccountNumber = DebitAccount
    LEFT JOIN 18_6_TransactionPartners ON TransactionPartnerName = CompanyName
WHERE VatReturnRowNumberForDebitTurnover = '61' AND Amount = 55
GROUP BY TransactionPartnerName;
于 2013-08-08T09:22:24.517 に答える
0

一意のキーを使用してテーブル間の関係を作成してみてください。

TransactionPartnerName を TransactionPartnerId に変更し、新しい列 PartnerId を 18_6_TransactionPartners テーブルに追加してから、この新しい列を使用してこれらのテーブルを結合します。

SELECT AccountNumber, DebitAccount, TransactionPartnerName, Amount, CompanyName 
FROM 18_8_ChartOfAccounts 
    LEFT JOIN 2_1_journal ON AccountNumber = DebitAccount 
    LEFT JOIN 18_6_TransactionPartners ON TransactionPartnerId = PartnerId 
WHERE VatReturnRowNumberForDebitTurnover = '61' AND Amount = 55
于 2013-08-08T09:35:10.750 に答える