復合型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