繁体   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