2012-01-26 42 views
-1

クエリ以下は、SQL Serverに3つのテーブルからデータを取得

SELECT  
    dbo.SI_Customer.cst_Name, dbo.SI_InvoiceMaster.invcm_DocNo,  
    dbo.SI_InvoiceMaster.invcm_Date, dbo.SI_InvoiceMaster.invcm_TotalAmount, 
    dbo.SI_ReceiptMaster.recm_DocNo, dbo.SI_ReceiptMaster.recm_Date,  
    dbo.SI_ReceiptMaster.recm_TotalAmount 
FROM   
    dbo.SI_Customer 
FULL OUTER JOIN 
    dbo.SI_ReceiptMaster ON dbo.SI_Customer.cst_Code = dbo.SI_ReceiptMaster.cst_Code 
FULL OUTER JOIN 
    dbo.SI_InvoiceMaster ON dbo.SI_Customer.cst_Code = dbo.SI_InvoiceMaster.cst_Code 
WHERE  
    (dbo.SI_Customer.cst_Code = '001813') 

は、このクエリからの結果である - これらの行は異なる含まれているとして、私は、これらの値に

enter image description here

+1

あなたは繰り返したくないので、何をやりたいのですか? –

+2

何を意味しますか*繰り返さない* .....これらはクエリの返す行です - それらで何をしたいですか? **あなたは**結果セットとして見たいものは何ですか? SQL Serverは**データベースサーバー**です。**リクエストされた行の**すべてのデータ**を返します。繰り返し値を抑制しません。これはフロントエンドで実行する必要があります。報告ツールまたは何か。 –

+0

GROUP BYを反復したくない列で使用する – Diego

答えて

0

を繰り返したくはありませんデータ、つまり日付と日付のどちらかの側の数字は、各行が一意であり、選択された列をすべて表示します。

いくつかの列を削除し、SUMでグループを作成するか、BIDSとGroup by Dateでレポートを作成し、CHILDグループとして繰り返す必要がない他のデータを持つことができます。

+0

グループはこれでは作業していません67 28 Aug 2009 68400これは請求書テーブルの単一エントリですが、レセプトデータのために繰り返されますすべてを再度表示する2番目の請求書データを取り込み、レセプトデータを再度表示します。このインボイスデータの繰り返しを削除する –

0

「愚か者はに急ぐ」 - 試してみてください。

SELECT  
    c.cst_Name, 
    m.invcm_DocNo,  
    m.invcm_Date, 
    m.invcm_TotalAmount, 
    m.recm_DocNo, 
    m.recm_Date,  
    m.recm_TotalAmount 
FROM dbo.SI_Customer c 
LEFT JOIN (SELECT cst_Code, 
        invcm_DocNo, 
        invcm_Date, 
        invcm_TotalAmount, 
        CONVERT(varchar(10), null) recm_DocNo, 
        CONVERT(datetime, null) recm_Date,  
        CONVERT(decimal(25,8), null) recm_TotalAmount 
      from dbo.SI_InvoiceMaster 
      where cst_Code = '001813' 
      union all 
      SELECT cst_Code, 
        CONVERT(varchar(10), null) invcm_DocNo, 
        CONVERT(datetime, null) invcm_Date, 
        CONVERT(decimal(25,8), null) invcm_TotalAmount, 
        recm_DocNo, 
        recm_Date,  
        recm_TotalAmount 
      from dbo.SI_ReceiptMaster 
      where cst_Code = '001813') m 
     ON c.cst_Code = m.cst_Code 
WHERE c.cst_Code = '001813' 
+0

コードの適用後にこのエラーが発生しました 両方のテーブル(InvoiceMaster&receiptMaste r)が異なるColumsとデータ型8114 メッセージ、レベル16、状態5、行エラーメッセージ –

+0

から1つの 変換エラーデータ型varchar型を持っています@ BravealiKhatri:これはおそらく、_DocNo、_Date、および_TotalAmountの値を補完的なテーブルの文字列として定義し、それらを非文字列のデータで結合したためです。彼らは正しいデータ型に変換する必要がありますが、私はそれらが何であるのかわかりません - あなたの質問に 'SI_ReceiptMaster'と' SI_InvoiceMaster'のDDL(つまり 'create table'文)を含めることができますか? – JsonStatham

+0

選択(1号線) –

関連する問題