Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用子查询的查询表达式中出现语法错误_Sql_Sql Server 2008 - Fatal编程技术网

Sql 使用子查询的查询表达式中出现语法错误

Sql 使用子查询的查询表达式中出现语法错误,sql,sql-server-2008,Sql,Sql Server 2008,我遇到以下错误:- SELECT ( SELECT Sum(tbl_allTransactions.transAmount) AS SumOftransAmount FROM tbl_allTransactions WHERE (((tbl_allTransactions.[transType])='Expense')) OR (((tbl_allTransactions.[transType])='Budget') AND ((tbl_allTransactions.[transMonth])

我遇到以下错误:-

SELECT
(
SELECT Sum(tbl_allTransactions.transAmount) AS SumOftransAmount
FROM tbl_allTransactions
WHERE (((tbl_allTransactions.[transType])='Expense')) OR (((tbl_allTransactions.[transType])='Budget') AND ((tbl_allTransactions.[transMonth])=[@transMonth]))
GROUP BY tbl_allTransactions.transMonth
,

SELECT Sum(tbl_allTransactions.transAmount) AS SumOftransAmount
FROM tbl_allTransactions
WHERE (((tbl_allTransactions.[transType])='Expense')) OR (((tbl_allTransactions.[transType])='Budget') AND ((tbl_allTransactions.[transMonth])=[@transMonth]))
GROUP BY tbl_allTransactions.transMonth
)

FROM tbl_allTransactions WHERE (((tbl_allTransactions.[userID])=[@userID]))

原始代码在第一个子查询中缺少右括号。通过将transType条件语句从2条语句合并为1条语句,代码也得到了简化。为了提高可读性,去掉了额外的括号。还将列别名添加到每个子查询的输出中。因为两个查询都呈现相同的数据,所以第二列称为SumOftransAmount2

System.Data.OleDb.OleDbException (0x80040E14) Syntax error in query
expression '(SELECT Sum(tbl_allTransactions.transAmount) AS
SumOftransAmount FROM tbl_allTransactions WHERE
(((tbl_allTransactions.[transType])='Expense')) OR
(((tbl_allTransactions.[transType])='Budget') AND
((tbl_allTransactions.[transMonth])=[@transMonth])) GROUP '. at
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResulthr) at
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS
dbParams, Object& executeResult) at
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Obje

当我运行单个子查询时,它工作正常,但当我执行两个子查询时,如上面给出的错误。你能共享错误文本吗?我如何共享错误快照?复制并粘贴错误消息到你的帖子@AishwarCNigamSystem.Data.OleDb.OLEDBEException 0x80040E14查询表达式“选择Sumtbl_allTransactions.transAmount作为tbl_allTransactions中tbl_allTransactions的交易金额之和,其中tbl_allTransactions.[transType]='Expense'或tbl_allTransactions.[transType]='Budget'和tbl_allTransactions.[transMonth]=[@transMonth]GROUP]。在System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandlingOleDbHResult hr中,在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResulttagDBPARAMS dbParams中,对象和RealTureSturt在Stase.Dela. OLeDbOLeBbCuord.ExtExtEcMutMordToButJeHi@ AsiWAR中,如果这个或任何答案已经解决了您的问题,请通过点击复选标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。
SELECT
(SELECT Sum(tbl_allTransactions.transAmount)
FROM tbl_allTransactions
WHERE tbl_allTransactions.transType in ('Expense', 'Budget') AND tbl_allTransactions.transMonth = @transMonth
GROUP BY tbl_allTransactions.transMonth) as SumOftransAmount
,
(SELECT Sum(tbl_allTransactions.transAmount)
FROM tbl_allTransactions
WHERE tbl_allTransactions.transType in ('Expense', 'Budget') AND tbl_allTransactions.transMonth = @transMonth
GROUP BY tbl_allTransactions.transMonth) as SumOftransAmount2
FROM tbl_allTransactions
WHERE tbl_allTransactions.userID=@userID