2017-08-21 36 views
0

當我在SQL Server視圖中選擇行時,出現該標題錯誤。當子查詢遵循=,!=,<,<=,>,> =或子查詢用作表達式時,子查詢返回的值不能超過1個值

這裏是我的代碼

CREATE VIEW vw_cashbook AS 
SELECT cashbooktranno, 
     cashbookdate, 
     cashbookrefaccname, 
     cashbookgroupname, 
     cashbookaccname, 
     cashbookdescription, 
     cashbookreceipt, 
     cashbookpayment, 
     (select sum(cashbook.cashbookreceipt) - sum(cashbook.cashbookpayment) from tbl_cashbook) as totalpayment, 
     company.companyname 
FROM tbl_cashbook cashbook 
    LEFT OUTER JOIN tbl_companyregistration company 
       ON cashbook.branchid = company.companyid 
group by cashbooktranno, cashbookdate, cashbookrefaccname, cashbookgroupname, cashbookaccname, 
cashbookdescription, cashbookreceipt, cashbookpayment, company.companyname 

現在,這個代碼是創建從表視圖。 此代碼非常完美,因此根據我的視圖也創建的代碼。 現在的問題是,當我從創建視圖中選擇行或在那個時候它顯示的錯誤

子查詢返回多個值編輯視圖。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。

這裏是我的觀點

SELECT TOP 1000 [cashbooktranno] 
     ,[cashbookdate] 
     ,[cashbookrefaccname] 
     ,[cashbookgroupname] 
     ,[cashbookaccname] 
     ,[cashbookdescription] 
     ,[cashbookreceipt] 
     ,[cashbookpayment] 
     ,[totalpayment] 
     ,[companyname] 
    FROM [AutoFinanceSoftware].[dbo].[vw_cashbook] 

選擇查詢,那麼,有沒有在我的查詢任何問題或有任何其他問題。

+0

,你能否告訴我們您正在使用從該視圖中選擇,請查詢? –

+0

您是否在創建視圖時遇到了該錯誤? –

+0

@MartinBrown我已經更新了我的問題中的選擇查詢,請查看它。 –

回答

2

不需要子查詢。用途:

CREATE VIEW vw_cashbook AS 
SELECT cashbooktranno, 
     cashbookdate, 
     cashbookrefaccname, 
     cashbookgroupname, 
     cashbookaccname, 
     cashbookdescription, 
     cashbookreceipt, 
     cashbookpayment, 
     sum(cashbook.cashbookreceipt) - sum(cashbook.cashbookpayment) as totalpayment, 
     company.companyname 
FROM tbl_cashbook cashbook 
    LEFT OUTER JOIN tbl_companyregistration company 
       ON cashbook.branchid = company.companyid 
group by cashbooktranno, cashbookdate, cashbookrefaccname, cashbookgroupname, cashbookaccname, 
cashbookdescription, cashbookreceipt, cashbookpayment, company.companyname; 

甚至(如果兩個列NOT NULL):

CREATE VIEW vw_cashbook AS 
SELECT cashbooktranno, 
     cashbookdate, 
     cashbookrefaccname, 
     cashbookgroupname, 
     cashbookaccname, 
     cashbookdescription, 
     cashbookreceipt, 
     cashbookpayment, 
     sum(cashbook.cashbookreceipt - cashbook.cashbookpayment) as totalpayment, 
     company.companyname 
FROM tbl_cashbook cashbook 
    LEFT OUTER JOIN tbl_companyregistration company 
       ON cashbook.branchid = company.companyid 
group by cashbooktranno, cashbookdate, cashbookrefaccname, cashbookgroupname, cashbookaccname, 
cashbookdescription, cashbookreceipt, cashbookpayment, company.companyname 
+1

太好了。完成。謝謝。 :) –

相關問題