① sql循環查詢如何合並查詢結果到一個表,每個結果表作為一個欄位
簡單寫了一個sqlserver的
按照你說的建個表,放了點數據
createtable訂單
(訂單號int,
訂單日期datetime,
訂單價值int)
insertinto訂單values(1,'2013-05-01',10)
insertinto訂單values(2,'2013-05-01',20)
insertinto訂單values(3,'2013-06-01',30)
insertinto訂單values(4,'2013-06-01',40)
insertinto訂單values(5,'2013-07-01',50)
insertinto訂單values(6,'2013-08-01',60)
insertinto訂單values(7,'2013-08-01',70)
insertinto訂單values(8,'2013-09-01',80)
insertinto訂單values(9,'2013-09-01',90)
insertinto訂單values(10,'2013-10-01',100)
insertinto訂單values(11,'2013-10-01',110)
insertinto訂單values(12,'2013-11-01',120)
insertinto訂單values(13,'2013-11-01',130)
insertinto訂單values(14,'2013-12-01',140)
你要查上個月到之前某個月的
所以執行這個
declare@sqlvarchar(4000)
declare@indexint
set@index=2--這個就是你說的要查前某個月的,這里寫2就代表9,10,11三個月
set@sql='select''匯總''as匯總'
select@sql=@sql+',sum(isnull(caseconvert(varchar(7),訂單日期,120)when'''+convert(varchar(7),[訂單日期],120)+'''then[訂單價值]end,0))as
['+convert(varchar(7),[訂單日期],120)+']'
from(selectdistinctconvert(varchar(7),訂單日期,120)訂單日期from[訂單]where
convert(varchar(7),訂單日期,120)>=convert(varchar(7),dateadd(month,(-1-cast(''+@index+''asint)),getdate()),120)
andconvert(varchar(7),訂單日期,120)<convert(varchar(7),getdate(),120))asa
select@sql=@sql+'from[訂單]'
exec(@sql)--這句我是執行sql,你可以直接把上句改成createtable的形式,把sql語句print出來,看看
結果
② sql合並兩個查詢結果
select a.pjID,a.pjName,a.累計開支費用,b.本月累計開支費用from ( 第一個語句放這里 ) a, ( 第二個語句放這里 ) bwhere a.pjID = b.pjID
③ SQL查詢語句如何合並結果
用union all
select *
from (
select [TPADEA].DEA002 as 主物料名稱,[TPADEA].DEA001 as 主物料編號,
[TPADEA].DEA057 as 主物料描述,[SGMQAB].QAB003 as 測試軟體
from [ZCDZ].[dbo].[SGMQAB],[ZCDZ].[dbo].[TPADEA]
union all
SELECT DEA001 as 測試軟體,DEA002 as 軟體名稱,DEA057 as 軟體描述,
DEA036 as 軟體版本
FROM [ZCDZ].[dbo].[TPADEA]
)a where [TPADEA].DEA001=[SGMQAB].QAB001
and [TPADEA].DEA002='M0011-101'
and [TPADEA].DEA001 like '1-D%'
and [SGMQAB].QAB003 like '6-%'
or DEA001='6-S01-151393-01'
大概這種格式,需要以怎樣的格式輸出再具體變換一下就行了
④ SQL中怎麼把多查詢結果合並成一條數據
oralce 10g 函數 wm_concat
select k_n1,k_n2,k_n3,k_n4,wm_concat(k_n5) from k_t where k_n1=1 and k_n2=1 and k_n3=1 and k_n4=1
運行結果如下:
1 1 1 1 5,4,3
⑤ sql語句 兩條sql語句怎麼合並在一起
方法/步驟
我用Toad做演示,我先新建兩張table,
create table #AA(ID int,name nvarchar(10),age int)
create table #BB(ID int,name nvarchar(10),age int )
⑥ sql語句 如何合並查詢結果
UNION 操作符用於合並兩個或多個 SELECT 語句的結果集。
請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。
SQL UNION 語法
SELECT column_name(s) FROM table_name1
UNION (ALL)
SELECT column_name(s) FROM table_name2
註:默認,UNION 操作符選取不同的值。如果允許重復的值,請使用 UNION ALL。
⑦ sql 查詢結果合並
這不是查詢合並,一般說來我們所說的查詢合並實際就是對同結構的結果集進行數據上的合並,站立的角度就是元組的合並。而列的「合並」這資料庫的專業術語中叫查詢連接。比如兩表的鏈接等。
select * from A join B on A.primarykey = B.primarykey
這就是Trans-SQL語句進行的連接,也就是你所謂的列合並。
當然這種合並的基礎是表,也就是可以合並表,視圖與結果集(SQL語句)任何進行鏈接的。而你給出的第二個結果實際是錯誤的,從結果集中可以看是他不可能是一個合乎要求的東西的,因為域只表示數據,而不可以在域中說明其意思的,也就是說不能從一個域中就知道它是A的成績還是B的成績的。要想合乎要求,那麼前邊一定還有primarykey的,否則一個元組(也就是表中的一條記錄)可能與另一條重復,也就是說一個元組不能標識一個實體,那麼表就是無意義的。
SQL語句設計的原則就是以最少的運算實現想要的結果,也就是說SQL語句優化的宗旨就是最好少用一些無所謂的臨時表,謂詞,統計函數,游標等技術,除非是不得已,否則用這些技術並不能說明SQL技術有多好,只會增加SQL server的負擔,對於多請求是浪費伺服器資源。所以不要從不存在的兩個中間結果進行所謂的合並,除非是視圖,SQL server對視圖有優化,可以作表用。而是直接考慮如何最快讓伺服器取出自己想要的結果,還要考慮伺服器執行自己SQL語句的過程,以達到最快的速度。
⑧ 怎麼合並兩個sql語句的查詢結果
Select id=1,name='李某某'
Union All Select 2,王某某
Union All Select 2,王某某
這樣合並不會去重 不要all 內部會有個去重操作 但是有all時後效率比沒all 高
Select id,name from table1
Union Select id,name from table2
Union Select id,name from table3
合並的語法是: select 列1,列2,列3,列n Union Select select 列1,列2,列3,列n
固定數據可以沒有from table
⑨ SQL如何合並多個查詢結果
合並結果一般用union或者union all,具體用什麼取決於需求。
如數據如下:
A表:
id name
1 張三
2 李四
3 王五
B表:
id name
1 張三
2 趙六
3 孫七
如果
selectid,namefromA
unionall
selectid,namefromB;
結果:
id name
1 張三
2 李四
3 王五
1 張三
2 趙六
3 孫七
如果:
selectid,namefromA
union
selectid,namefromB;
結果:
id name
1 張三
2 李四
3 王五
2 趙六
3 孫七
也就是說union all在執行後,不會把相同的結果合並,而union會把相同的結果只顯示成一行。