簡體   English   中英

SQL 存在返回錯誤

[英]SQL Exists returning errors

所以我有以下查詢:

select *
from ft, pn
where exists (ft.vendnm like '%rocha%' and pn.fno = ft.fno);

我只想要符合括號內條件的結果。 SQL 服務器告訴我的是:

select 列表中不引入EXISTS 子查詢時只能指定一個表達式。

我不明白這有什么問題。

上下文的整個代碼:

select 
x.Num,
x.Cliente,
x.Zona,
sum(x.valor_1) as Valor_1,
sum(x.valor_2) as Valor_2,
x.Vendnm,
'2021-01-01 00:00:00.000' as Data1,
'2021-12-31 00:00:00.000' as Data2,
'2022-01-01 00:00:00.000' as Data3,
'2022-12-31 00:00:00.000' as Data4,
(select sum(pn.etiliquido) from pn where pn.vendedor in (3) and (pn.fdata BETWEEN '2021-01-01 00:00:00.000' AND '2021-12-31 00:00:00.000')) as VT1,
(select sum(pn.etiliquido) from pn where pn.vendedor in (3) and (pn.fdata BETWEEN '2022-01-01 00:00:00.000' AND '2022-12-31 00:00:00.000')) as VT2,
(select * from ft, pn where exists (select * from ft, pn where ft.vendnm like '%rocha%' and pn.fno = ft.fno)),


isnull(
round((((select sum(pn.etiliquido) from pn where pn.no in (select no from cl where cl.vendedor = 3) and (pn.fdata BETWEEN '2022-01-01 00:00:00.000' AND '2022-12-31 00:00:00.000') AND PN.REF NOT IN ('DESC. FINANCEIRO','PORTES','DESP.BANCARIAS','COL. COM.','VENDA VIAT CI','RESP.TRANSPORTE','RECIGLAGEM','MARK. CONT. 2013','RAPPEL13','JUROS','VENDA VIAT SI','CREDITO SRCM','RAPPEL14','FEIRAS','MARK. CONT. 2014','MARK. CONT. 2015','RAPPEL15','RAPPEL16','MARK. CONT. 2016','RAPPEL17','MARK. CONT. 2017','RAPPEL18','MARK. CONT. 2018','RAPPEL19','MARK. CONT. 2019','MARK. CONT. 2020','RAPPEL20','MARK. CONT. 2021','RAPPEL21','MARK. CONT. 2022','RAPPEL22') and  pn.usr1 not in ('12-DAS','13-DIDO','19-GIOTTO','19-GIOTTO BE-BÈ','10-ADIGRAF','27-OMYACOLOR','28-PONGO', '18-FILA', '36-TRATTO','48 - LYRA'))
-
(select sum(pn.etiliquido) from pn where pn.no in (select no from cl where cl.vendedor = 3) and (pn.fdata BETWEEN '2021-01-01 00:00:00.000' AND '2021-12-31 00:00:00.000') AND PN.REF NOT IN ('DESC. FINANCEIRO','PORTES','DESP.BANCARIAS','COL. COM.','VENDA VIAT CI','RESP.TRANSPORTE','RECIGLAGEM','MARK. CONT. 2013','RAPPEL13','JUROS','VENDA VIAT SI','CREDITO SRCM','RAPPEL14','FEIRAS','MARK. CONT. 2014','MARK. CONT. 2015','RAPPEL15','RAPPEL16','MARK. CONT. 2016','RAPPEL17','MARK. CONT. 2017','RAPPEL18','MARK. CONT. 2018','RAPPEL19','MARK. CONT. 2019','MARK. CONT. 2020','RAPPEL20','MARK. CONT. 2021','RAPPEL21','MARK. CONT. 2022','RAPPEL22') and  pn.usr1 not in ('12-DAS','13-DIDO','19-GIOTTO','19-GIOTTO BE-BÈ','10-ADIGRAF','27-OMYACOLOR','28-PONGO', '18-FILA', '36-TRATTO','48 - LYRA'))))*100,2),0) as Diftotal,


isnull(
round((((select sum(pn.etiliquido) from pn where pn.no in (select no from cl where cl.vendedor = 3) and (pn.fdata BETWEEN '2022-01-01 00:00:00.000' AND '2022-12-31 00:00:00.000') AND PN.REF NOT IN ('DESC. FINANCEIRO','PORTES','DESP.BANCARIAS','COL. COM.','VENDA VIAT CI','RESP.TRANSPORTE','RECIGLAGEM','MARK. CONT. 2013','RAPPEL13','JUROS','VENDA VIAT SI','CREDITO SRCM','RAPPEL14','FEIRAS','MARK. CONT. 2014','MARK. CONT. 2015','RAPPEL15','RAPPEL16','MARK. CONT. 2016','RAPPEL17','MARK. CONT. 2017','RAPPEL18','MARK. CONT. 2018','RAPPEL19','MARK. CONT. 2019','MARK. CONT. 2020','RAPPEL20','MARK. CONT. 2021','RAPPEL21','MARK. CONT. 2022','RAPPEL22') and  pn.usr1 not in ('12-DAS','13-DIDO','19-GIOTTO','19-GIOTTO BE-BÈ','10-ADIGRAF','27-OMYACOLOR','28-PONGO', '18-FILA', '36-TRATTO','48 - LYRA'))
-
(select sum(pn.etiliquido) from pn where pn.no in (select no from cl where cl.vendedor = 3) and (pn.fdata BETWEEN '2021-01-01 00:00:00.000' AND '2021-12-31 00:00:00.000') AND PN.REF NOT IN ('DESC. FINANCEIRO','PORTES','DESP.BANCARIAS','COL. COM.','VENDA VIAT CI','RESP.TRANSPORTE','RECIGLAGEM','MARK. CONT. 2013','RAPPEL13','JUROS','VENDA VIAT SI','CREDITO SRCM','RAPPEL14','FEIRAS','MARK. CONT. 2014','MARK. CONT. 2015','RAPPEL15','RAPPEL16','MARK. CONT. 2016','RAPPEL17','MARK. CONT. 2017','RAPPEL18','MARK. CONT. 2018','RAPPEL19','MARK. CONT. 2019','MARK. CONT. 2020','RAPPEL20','MARK. CONT. 2021','RAPPEL21','MARK. CONT. 2022','RAPPEL22') and  pn.usr1 not in ('12-DAS','13-DIDO','19-GIOTTO','19-GIOTTO BE-BÈ','10-ADIGRAF','27-OMYACOLOR','28-PONGO', '18-FILA', '36-TRATTO','48 - LYRA')))/
(select sum(pn.etiliquido) from pn where pn.no in (select no from cl where cl.vendedor = 3) and (pn.fdata BETWEEN '2021-01-01 00:00:00.000' AND '2021-12-31 00:00:00.000') AND PN.REF NOT IN ('DESC. FINANCEIRO','PORTES','DESP.BANCARIAS','COL. COM.','VENDA VIAT CI','RESP.TRANSPORTE','RECIGLAGEM','MARK. CONT. 2013','RAPPEL13','JUROS','VENDA VIAT SI','CREDITO SRCM','RAPPEL14','FEIRAS','MARK. CONT. 2014','MARK. CONT. 2015','RAPPEL15','RAPPEL16','MARK. CONT. 2016','RAPPEL17','MARK. CONT. 2017','RAPPEL18','MARK. CONT. 2018','RAPPEL19','MARK. CONT. 2019','MARK. CONT. 2020','RAPPEL20','MARK. CONT. 2021','RAPPEL21','MARK. CONT. 2022','RAPPEL22') and  pn.usr1 not in ('12-DAS','13-DIDO','19-GIOTTO','19-GIOTTO BE-BÈ','10-ADIGRAF','27-OMYACOLOR','28-PONGO', '18-FILA', '36-TRATTO','48 - LYRA')))*100,2),0) as Perc_dif

from
(
select
pn.no as Num,
(select nome from cl where cl.no=pn.no) as Cliente,
(select zona from cl where cl.no=pn.no) as Zona,
sum(pn.etiliquido) as Valor_1,
0 as Valor_2,
(select vendnm from cl where cl.no=pn.no) as Vendnm
from pn
where  (pn.usr1 not like '%'+'Portes'+'%') 
and (pn.fdata BETWEEN '2021-01-01 00:00:00.000' AND '2021-12-31 00:00:00.000') 
and pn.ref<>''  
and  pn.usr1 not in ('12-DAS','13-DIDO','19-GIOTTO','19-GIOTTO BE-BÈ','10-ADIGRAF','27-OMYACOLOR','28-PONGO', '18-FILA', '36-TRATTO','48 - LYRA')
and pn.REF not IN ('DESC. FINANCEIRO','PORTES','DESP.BANCARIAS','COL. COM.','VENDA VIAT CI','RESP.TRANSPORTE','RECIGLAGEM','MARK. CONT. 2013','RAPPEL13','JUROS','VENDA VIAT SI','CREDITO SRCM','RAPPEL14','FEIRAS','MARK. CONT. 2014','MARK. CONT. 2015','RAPPEL15','RAPPEL16','MARK. CONT. 2016','RAPPEL17','MARK. CONT. 2017','RAPPEL18','MARK. CONT. 2018','RAPPEL19','MARK. CONT. 2019','MARK. CONT. 2020','RAPPEL20','MARK. CONT. 2021','RAPPEL21','MARK. CONT. 2022','RAPPEL22')
group by pn.no

union all

select 
pn.no as Num,
(select nome from cl where cl.no=pn.no) as Cliente,
(select zona from cl where cl.no=pn.no) as Zona,
0 as Valor_1,
sum(pn.etiliquido) as Valor_2,
(select vendnm from cl where cl.no=pn.no) as Vendnm
from pn
where  (pn.usr1 not like '%'+'Portes'+'%') 
and (pn.fdata BETWEEN '2022-01-01 00:00:00.000' AND '2022-12-31 00:00:00.000')
and  pn.usr1 not in ('12-DAS','13-DIDO','19-GIOTTO','19-GIOTTO BE-BÈ','10-ADIGRAF','27-OMYACOLOR','28-PONGO', '18-FILA', '36-TRATTO','48 - LYRA')
and pn.ref<>''
and pn.REF not IN ('DESC. FINANCEIRO','PORTES','DESP.BANCARIAS','COL. COM.','VENDA VIAT CI','RESP.TRANSPORTE','RECIGLAGEM','MARK. CONT. 2013','RAPPEL13','JUROS','VENDA VIAT SI','CREDITO SRCM','RAPPEL14','FEIRAS','MARK. CONT. 2014','MARK. CONT. 2015','RAPPEL15','RAPPEL16','MARK. CONT. 2016','RAPPEL17','MARK. CONT. 2017','RAPPEL18','MARK. CONT. 2018','RAPPEL19','MARK. CONT. 2019','MARK. CONT. 2020','RAPPEL20','MARK. CONT. 2021','RAPPEL21','MARK. CONT. 2022','RAPPEL22')
group by pn.no
)
x
where x.Vendnm like '%rocha%'
group by x.Num,x.Zona,x.Cliente,x.Vendnm
order by Valor_2 desc
select ft.* 
from ft
join pn on pn.fno = ft.fno
where ft.vendnm like '%rocha%

暫無
暫無

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

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