網上看到一道sql查詢題所做的總結

2022-02-16 18:33:12 字數 865 閱讀 4482

求表aaa中剩餘的庫存量。

sql語句(1)

select mc,sum(s1)as 剩餘數量 from

(

select[mc

],([

s1]) as

s1

from

aaa

union

allselect[mc

],(-[s1

]) as

s1

from

bbb) list

group

by mc

把兩個表聯合起來組成乙個結果,把出庫的數量轉化為負的,然後再求和。

注意,此處必須用union all ,不能用union,union和union all 的區別是union會把聯合起來的重覆記錄刪除掉,所以不能用union,兩個表的結構必須相同。

擴充:except 也是連線兩個sql語句,就是獲取aaa表中的在bbb表中沒有的記錄行,兩個表的結構必須相同,except all是不消除重複的,但是在有的sql版本中不能用。

intersect恰好同except 相反,他是獲取兩個sql中aaa表中有,bbb表中也有的記錄行,兩個表的結構必須相同,intersect all是不消除重複的,但是在有的sql版本中不能用。

sql語句(2)

select mc ,s1-(select

sum(s1) from bbb where mc=aaa.mc group

by mc) from aaa

知乎看到的一道題

手裡有一副從1到n的牌,每次從牌堆頂取一張放桌子上,再取一張放牌堆底,直到手裡沒牌。這時候,桌子上的牌是從1到n有序的。設計程式,輸入n,輸出牌堆的順序陣列。12 345 1 2345 1 345 2 1 3 4 52 13 524 135 24 13 5 4 2 1 354 2 1354 2 13...

一道SQL查詢的題目

一是查詢a id,name 表中第31至40條記錄,id作為主鍵可能是不是連續增長的列,完整的查詢語句如下 select top 10 from a where id select max id from select top 30 id from a order by a t order by a...

從別處看到的一道演算法附加題

題目 已知乙個陣列a n 構造乙個陣列b n 構造規則 b i a 0 a 1 a 2 a n a i 要求 1 不可以使用除法 2 時間複雜度為o n 空間複雜度為s 0 3 除遍歷使用的變數外,不可以使用其它變數 自己的解法雖然不合題意,終究是自己想的,但是極力只用1個.可以使用遍歷變數我就無恥...