sql复合查询语句

sql复合查询语句,第1张

select t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate

from pch1 t0 

left join opch t1 on t0.[DocEntry] =t1.[DocEntry] 

where 

t1.docdate<'2017-12-01' --条件1

and t0.itemcode='GD01002' -----条件2

union  ----关键部分,字段一样时,可以通过union链接成一个语句,当部分查询字段没有时,可以根据类型补空或者0

select --t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate

sum(t0.quantity)

from ign1 t0 

left join oign t1 on t0.[DocEntry] =t1.[DocEntry] 

WHERE

t1.docdate<'2017-12-01' --条件1

and t0.itemcode='GD01002' -----条件2

group by t0.itemcode

……--后面继续就行 --第二种,建临时表

if(object_id('temp..#a') > 0)

    drop table #a

create table #a

(

itemcode varchar(100),

quantity int,

docstatus int,

canceled int,

docdate date

)

insert into #a(quantity,docstatus,docstatus,canceled ,docdate)

select t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate

from pch1 t0 

left join opch t1 on t0.[DocEntry] =t1.[DocEntry] 

where 

t1.docdate<'2017-12-01' --条件1

and t0.itemcode='GD01002' -----条件2

insert into #a(quantity,docstatus,docstatus,canceled ,docdate)

select --t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate

sum(t0.quantity)

from ign1 t0 

left join oign t1 on t0.[DocEntry] =t1.[DocEntry] 

WHERE

t1.docdate<'2017-12-01' --条件1

and t0.itemcode='GD01002' -----条件2

group by t0.itemcode

……--继续插入数据

--最后查询

select * from #a --关于存储过程

Create proc sp_Test

(

@d date,

@code varchar(100)

)

as 

begin

--这里只放一个语句,用于参数的示例,只需要将上面的语句放到存储过程中,并将参数替换就可以了

select --t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate

sum(t0.quantity)

from ign1 t0 

left join oign t1 on t0.[DocEntry] =t1.[DocEntry] 

WHERE

t1.docdate<@d --条件1

and t0.itemcode=@code -----条件2

group by t0.itemcode

end

对于字符串类型的

可以用like,既能实现模糊查找还能省去检索条件为空的判断

假设你的前台页面上放的有

姓名、酒类这两个输入检索条件的文本框

SQL语句可以这么写

select

*

from

取酒表

where

姓名

like

'王%'

and

酒类

like

'酒%'

这样既能模糊查找姓名以王开头、酒类以酒开头的

所有信息,同时还不必去判断是不是这两个条件都输入了

另外至于时间的,你可以在后台的代码文件里给每一个时间条件规定一个合理默认时间,传条件时判断一下如果前台时间控件里为空则传默认时间,不空则传填写的时间,这样有N个时间条件就只需要N个IF


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9993821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存