簡體   English   中英

子查詢時只能指定表達式…SQL Server

[英]Only expression can be specified when subquery… SQL server

因此,我一直在做一個循環,以獲取從211天開始的每一天的數據以生成報告。 而且我收到此錯誤消息。 我正在使用SQL Server 2008 R2,盡管我不知道為什么會收到此錯誤,但我已經嘗試了一些不起作用的方法。 因此,我要在這里非常感謝您的回答。

消息116,第16層,狀態1,第21行
如果未使用EXISTS引入子查詢,則只能在選擇列表中指定一個表達式。

我的密碼

create table #ExcelPrint (row int IDENTITY (1, 1) NOT NULL, Col01 varchar(100), 
Col02 varchar(100), Col03 varchar(100), Col04 varchar(100),Col05 varchar(100))

declare @counter int 
set @counter = 0 
insert into #excelprint (Col01,Col02,Col03) values ('Text','Number', 'Amount')
while @counter > -211 
begin 

insert into #ExcelPrint (Col01,Col02)
select (CONVERT(varchar,Dateadd(DD,@counter,GETDATE()),112)),   
(
select TableA.ColA ,sum(colB)
from db.TableA as A 
inner join db.TableB B on B.Col1 = A.Col1
inner join db.TableC C on C.Col1 = B.Col1
where amount = CONVERT(varchar,Dateadd(DD,@counter,GETDATE()),112)
and A.Col1 = 123
and B = 12
group by ColA.A
)
set @counter = @counter -1 
end

select isnull(Col01,''), Replace(ISNULL(col02,''),'.',','),
Replace(ISNULL(col03,''),'.',',')
,Replace(ISNULL(Col04,''),'.',',') from #ExcelPrint
order by row
drop table #ExcelPrint

更改

select (CONVERT(varchar,Dateadd(DD,@counter,GETDATE()),112)),   
(
select TableA.ColA ,sum(colB)
from db.TableA as A 

select CONVERT(varchar,Dateadd(DD,@counter,GETDATE()),112))
,TableA.ColA 
,sum(colB)
from db.TableA as A ...

固定insert子句中的列數,並在適當的列上分組...

我不知道這是否是您查詢的真正語法,但對此我有一些疑問。

  1. 為什么將db.TableA命名為A,然后在select do中:TableA.xxx做A.xxx
  2. 在您的選擇中,您有一個ColA,而在where子句中,Col1是否正確並且應該不同?
  3. 仍然在您的where子句中,您有一個表B,但是B = 12是什么?
  4. 如果您想按日期匯總所有內容,則應刪除第三列A.ColA或以其他方式編寫查詢。 現在,當您按日期進行分組時,ColA已被拆分:)
  5. 在where子句中,金額是“交易”的日期?

除了這些並且它們是邏輯之外的大多數語法,它應該起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM