2012-01-26 17 views
-1

查詢檢索3個表中的數據在SQL Server

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和按日期分組中生成報告,並將其他數據不想重複爲CHILD組。

+0

Group by Not Working爲此67 2009年8月28日68400這是發票表中的單項,但由於Recept數據顯示重複顯示所有之後它再次發送第二個發票數據並再次顯示REcept數據我不想要這個我只想刪除發票數據的這個重複 –

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,行1個 錯誤轉換數據類型爲varchar到數字 –

+0

哪一行不,當你雙擊錯誤信息 – JsonStatham

+0

選擇(1號線) –