复合型sql
㈠ sql复合查询
应以部门为主
,进行左连接查询,这样,如果一个部门一个人员都没有也可以查出该部门是0人
SELECT
b.bm_name
部门名称
,
COUNT(a.u_bm)
部门人数
FROM
部门表
b
LEFT
JOIN
员工表
a
ON
a.u_bm
=
b.bm_id
GROUP
BY
b.bm_name
㈡ SQL复合查询
因为你在where语句中用到bas_resume_manage这个表,但没有在from 加上bas_resume_manage这个表,所以出错。请把SQL语句改成如下:
select bas_job.job_name , bas_resume.member_name from dbo.bas_job , dbo.bas_resume,bas_resume_manage
where bas_job.job_id=bas_resume_manage.job_id and
bas_resume.member_id=bas_resume_manage.member_id
㈢ sql复合查询
例如表名为userlog
select 用户名,id from userlog where 用户名 in (select 用户名 from userlog group by 用户名,日期,substr(时间,0,2)) having count(*)>=3)
这里面需要解决两个问题,一个事时间和日期格式的问题,再有一个就是时间段的定义(如何区分时间段,什么规则?)
同时光显示id不显示用户名的话好像说明不了问题,除非指定用户。
㈣ SQL的复合查询语句
sql联合查询语句(两张表)是:
select A.ID,A.VALUE,A.TYPE,A.NAME,B.KEY,B.ID,B.VALUE,B.NAME
min(VALUE),max(VALUE) from A left join B on A.ID = B.ID
where B.NAME="你输入的名字"
and B.VALUE > (select min(VALUE) from B where NAME="你输入的名字"))
and B.VALUE < (select min(VALUE) from B where NAME="你输入的名字"));
延展阅读:
A表字段stuid,stuname。
B表字段bid,stuid,score,coursename,status。
要用一条sql查出A表中所有记录的对应的stuid,max(score),coursename,status,并且status=1,sql语句要求跨数据库,不能使用rownum,top,limit等方言。
比如数据:
A
㈤ SQL复合查询(或者说是二次查询)
select * from track
where tck_time<2006-11-1 and car_id between 60 and 80
这样就符合你的需求了
结果出现以下的错误:
服务器: 消息 209,级别 16,状态 1,行 2
列名 'tck_time' 不明确。
问题出现在
select * from track,
(select * from track
where car_id between 60 and 80)as sa
track 有一个 tck_time 列 sa 也有一个tck_time列
where tck_time=2006-11-1 没有指明那一个
tck_time列
㈥ SQL复合查询,语句应该怎么写,请各位大神指教,具体如下图所示
selecta.登录名,a.姓名,a.部门,casewhenb.请假类型='病假'then请假天数else''end病假,casewhenb.请假类型='事假'then请假天数else''end事假fromaleftjoinbona.登录名=b.登录名
㈦ sql复合查询语句
selectt0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
frompch1t0
leftjoinopcht1ont0.[DocEntry]=t1.[DocEntry]
where
t1.docdate<'2017-12-01'--条件1
andt0.itemcode='GD01002'-----条件2
union----关键部分,字段一样时,可以通过union链接成一个语句,当部分查询字段没有时,可以根据类型补空或者0
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<'2017-12-01'--条件1
andt0.itemcode='GD01002'-----条件2
groupbyt0.itemcode
……--后面继续就行
--第二种,建临时表
if(object_id('temp..#a')>0)
droptable#a
createtable#a
(
itemcodevarchar(100),
quantityint,
docstatusint,
canceledint,
docdatedate
)
insertinto#a(quantity,docstatus,docstatus,canceled,docdate)
selectt0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
frompch1t0
leftjoinopcht1ont0.[DocEntry]=t1.[DocEntry]
where
t1.docdate<'2017-12-01'--条件1
andt0.itemcode='GD01002'-----条件2
insertinto#a(quantity,docstatus,docstatus,canceled,docdate)
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<'2017-12-01'--条件1
andt0.itemcode='GD01002'-----条件2
groupbyt0.itemcode
……--继续插入数据
--最后查询
select*from#a
--关于存储过程
Createprocsp_Test
(
@ddate,
@codevarchar(100)
)
as
begin
--这里只放一个语句,用于参数的示例,只需要将上面的语句放到存储过程中,并将参数替换就可以了
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<@d--条件1
andt0.itemcode=@code-----条件2
groupbyt0.itemcode
end
㈧ SQL怎样可以复合查询
1.insert into [部门表](bm_id,bm_name)values(1,'bm1')
2.insert into [部门表](bm_id,bm_name)values(2,'bm2')
3.insert into [部门表](bm_id,bm_name)values(3,'bm3')
4.insert into [部门表](bm_id,bm_name)values(4,'bm4')
5.insert into [员工表](u_name,u_bm)values('q',3)
6.insert into [员工表](u_name,u_bm)values('q',4)
7.insert into [员工表](u_name,u_bm)values('q',1)
8.insert into [员工表](u_name,u_bm)values('q',2)
9.select max(bm_name),sum(1) from [部门表]left join [员工表] on bm_id=u_bm
㈨ 几种常见复合sql查询语句的linq写法
1.IN 语句
尝试了很多次,好象linq死活不生成in语句,无奈只能做了下变换
例,要找出手机大类以及手机下属所有子类的产品 (手机大类的ID为D0C37275-2279-4590-A679-C65A4F28918F)
效果上等效于或linq to sql的等效写法:或varquery=frompindb.T_Proctsjoincindb.T_Classesonp.F_CLSIDequalsc.F_IDwhere
c.F_ID==newGuid(
D0C37275-2279-4590-A679-C65A4F28918F)||
c.F_ParentIDStr.Contains(
D0C37275-2279-4590-A679-C65A4F28918F)selectnew
{p.F_ID,p.F_Name};varquery=frompindb.T_Proctsfromcindb.T_Classeswhere
p.F_CLSID==
c.F_ID&&(c.F_ID==newGuid(
D0C37275-2279-4590-A679-C65A4F28918F)||
c.F_ParentIDStr.Contains(
D0C37275-2279-4590-A679-C65A4F28918F))selectnew
{p.F_ID,p.F_Name};Select
P.F_ID,P.F_Name,P.F_ClsIDFromT_ProctAs
P,T_ClassAsCwhere
P.F_ClSID=
C.F_IDAnd(
C.F_ID='D0C37275-2279-4590-A679-C65A4F28918F'OR
C.F_ParentIdStrlike'%D0C37275-2279-4590-A679-C65A4F28918F%')Select
P.F_ID,P.F_Name,P.F_ClsIDFromT_ProctAsPInnerJoinT_ClassAsCOn
C.F_ID=
P.F_CLSIDwhere