Ⅰ 怎麼分組連接sql
准備數據
createtablet1(日期varchar2(10),aint,bint);
insertintot1
select'2013-08-01',1,2fromal
unionallselect'2013-08-01',2,3fromal
unionallselect'2013-08-01',2,3fromal
unionallselect'2013-08-02',3,4fromal
unionallselect'2013-08-02',4,5fromal;
createtablet2(日期varchar2(10),aint,bint);
insertintot2
select'2013-08-03',1,2fromal
unionallselect'2013-08-03',4,5fromal
unionallselect'2013-08-03',99,99fromal;
查詢語句
selectn.日期,m.日期,n.a,n.bfrom(selectdistinct日期fromt1)m,t2n
wherenotexists(select1fromt1where日期=m.日期anda=n.aandb=n.b)
順序不一致可以自行加order by
Ⅱ sql分組合並統計查詢
select 部門,count(姓名) 人數,(select count(*) from biao where 部門=a.部門 and 狀態='狀態1') as 狀態1,(select count(*) from biao where 部門=a.部門 and 狀態='狀態2') as 狀態2,(select count(*) from biao where 部門=a.部門 and 狀態='狀態3') as 狀態3,(select count(*) from biao where 部門=a.部門 and 狀態='狀態4') as 狀態4 from biao a group by 部門
Ⅲ SQL 分組統計,再合並組
select 組名2 as 組名, 產品2 as 產品,sum(數量) as 數量
from
(select case when 組名 = 'A1' then 'A' when 組名 = 'B1' then 'B' else 組名 end as 組名2,case when 組名 = 'A1' then 'aa' when 組名 = 'B1' then 'bb' else 產品 end as 產品2 ,數量
from 表
) tb
group by 組名2, 產品2
Ⅳ sqlserver 分組 拼接其他欄位
SQL2005或以上才可以:
Declare @t Table
(
ID int,
FName varchar(20),
CName varchar(20),
CAge varchar(20)
)
Insert Into @t
select 1,'吳亮','吳1','3歲' Union
select 1,'吳亮','吳2','5歲' Union
select 1,'吳亮','吳3','9歲' Union
select 4,'麥大偉','麥1','3歲' Union
select 4,'麥大偉','麥2','5歲' Union
select 6,'張思','張1','3歲'
下面是合並:
Select ID,FName,CName=Stuff((Select ','+CName From @t Where ID=T.ID For xml path('')),1,1,''),
CAge=Stuff((Select ','+CAge From @t Where ID=T.ID For xml path('')),1,1,'')
From @t T Group by id,FName
Ⅳ sql分組查詢後合並符合條件的數據
可以把源表中為null 和『』的先update一下,src都統一設置成『』,如果是group by 以後合並,由於src不同,沒法合並吧。因為要考慮合並後src的值
Ⅵ sql 分組合並
你大概是這個意思:
selectcompanyname,sum(dtlcost+totalpackqty+boxqty)fromBms_transcontrol_dtl_vgroupbycompanyname
Ⅶ sql group by 之後 如何合並分組的文本
db2 / oracle /sql server 2005以上,可以這樣做
SELECT 姓名,
MAX(CASE RK WHEN 1 THEN 內容 ELSE '' END)
||MAX(CASE RK WHEN 2 THEN 內容 ELSE '' END)
||MAX(CASE RK WHEN 3 THEN 內容 ELSE '' END)
||MAX(CASE RK WHEN 4 THEN 內容 ELSE '' END)
FROM (SELECT 姓名, 內容,
ROW_NUMBER() OVER(PARTITION BY 姓名 ORDER BY 內容) rk FROM tab) t
GROUP BY 姓名
Ⅷ SQL多表關聯查詢再拼接和分組的問題
第二個問題的意思是:列出每個學校的交費人數,和總費用select 所屬學校,count(),sum(收費金額)from T1,T2 where T1.IDCard=T2.IDCard group by 所屬學校問題已解決,我是把之前的所有子查詢語句當做條件,這樣就是代碼量多了點。。。where (select count(*) from tb1 as t1 whree t1.orgid=org.id) >0 or (select count(*) from tb2 as t2 whree t2.orgid=org.id) >0 or 。。。這樣就查詢出了我想要的數據怎麼限制b,像這樣嗎要這個結果,對巴?GROUP BY A, B 不行么?理論是絕對可以的哦。如果這個不型,可以考慮這個數據這設計的願因是 一個人對應多條應有考勤, 一條實際應考勤就是代表一個周期(如圖2 B.jfjs 應是這個周期應有的考勤 中存的3就是 這個周期應該有相應的三個應際考勤記錄) 如果 關聯 人的話 要怎麼才能 分別查詢滿足條件的周期下的應際考勤數你的意思是 一條應有考勤對應一個周期,一條實際考勤代表一個周期中的一個點?例如一個實際考勤是一周,就要對應5條實際考勤?這樣的話也是一樣都對到人上去,然後應有考勤是什麼周期(幾號-幾號)應該對應幾次實際考勤,實際考勤就直接記錄打考勤的時間。這樣在統計的時候取出人、應有考勤數、考勤周期里實際考勤數應該就滿足需求了吧。 應有考勤和實際考勤同人關聯,實際考勤通過時間周期和應有考勤關聯然後用count()取出應有考勤數。b.考勤周期 = 輸入參數(或者不要這個條件就是所有的有考勤時間的數據),如果需要人員信息再去關聯a表就好。就是實際考勤需要取考勤的周期,這個周期可以放在實際考勤表裡面那就不用時間關聯直接周期關聯就行。用人員的id和應有考勤關聯起來就好。
Ⅸ 請教sql 可以分組後數據合並嗎
select
[name]
strValue=(select[value]+','from表名bwherea.[name]=b.[name]forxmlpath(''))
from
表名a
groupby
[name]
Ⅹ sql 分組後怎麼把結果合並到一個類別下啊
--如果商品和類別在同一個表
--建表
CreateTableT
(
商品Varchar(10),
類別Varchar(10),
數量Int
)
--插入數據
InsertIntoTValues('蘋果','水果',10)
InsertIntoTValues('葡萄','水果',20)
InsertIntoTValues('西紅柿','蔬菜',30)
--方法一,按商品類別分類求和,加withcube選項
SelectISNULL(商品,'分類-'+類別)As商品,數量
From(
Select商品,類別,SUM(數量)As數量FromT
GroupBy商品,類別
WithCube
)S
Where類別IsNotNull
--方法二,按商品和類別分別匯總後合拼在一起,然後排序
Select商品,數量
From(
Select商品,Max(類別)As類別,SUM(數量)As數量FromT
GroupBy商品
UnionAll
Select'分類-'+類別,類別+'Z',SUM(數量)As數量FromT
GroupBy類別
)S
OrderBy類別
--如果沒有類別,需要先建一個對照表
--建表
CreateTableM
(
商品Varchar(10),
類別Varchar(10)
)
CreateTableN
(
商品Varchar(10),
數量Int
)
--插入數據
InsertIntoMValues('蘋果','水果')
InsertIntoMValues('葡萄','水果')
InsertIntoMValues('西紅柿','蔬菜')
InsertIntoNValues('蘋果',10)
InsertIntoNValues('葡萄',20)
InsertIntoNValues('西紅柿',30)
InsertIntoNValues('蘋果',15)
--查詢
SelectIsNull(商品,'分類-'+類別)As商品,數量
From(
Selectn.商品,類別,SUM(數量)As數量FromnLeftJoinm
onm.商品=n.商品
GroupByn.商品,類別
WithCube
)s
Where類別isnotnull