SQL查詢 把兩個表的資料統計到表裡。如下圖所需的結果

2022-04-29 07:38:59 字數 5757 閱讀 4894

1樓:匿名使用者

select ccc.*, 損壞,損壞的金額,b_start_no2,b_end_no2 from

(select aaa.*,借出 from

(select b_start_no,b_end_no,位置 ,count(*) 總數量 from (select * from aa join bb on book_no >= b_start_no and book_no <= b_end_no) as tbl1 ) as aaa

join

(select b_start_no,b_end_no,count(*) 借出 from (select aa.*,bb.* from aa join bb on book_no >= b_start_no and book_no <= b_end_no) as aa where 情況=0) as bbb

on aaa.b_start_no==bbb.b_start_no and aaa.b_end_no==bbb.b_end_no

) as ccc

join

(select b_start_no,b_end_no,count(*) 損壞,sum(price) 損壞的金額,min(book_no) b_start_no2,max(book_no) b_end_no2 from (select aa.*,bb.* from aa join bb on book_no >= b_start_no and book_no <= b_end_no) as aa where 情況=1) as ddd

on ccc.b_start_no==ddd.b_start_no and ccc.b_end_no==ddd.b_end_no

(損壞的書號那一列需要字串的求和組函式的額外的處理辦法)

2樓:救救大漢江山吧

declare @dd table(

b_start_no nvarchar(20),--

b_end_no nvarchar(20),--

position nvarchar(20),--

book_no nvarchar(20),--

price float,--

islend int

)insert into @dd

select

a.b_start_no,

a.b_end_no,

a.position,

b.book_no,

b.price,

b.islend

from

aa a

left join

bb b on a.b_start_no<=b.book_no and a.b_end_no>=b.book_no

select

d.b_start_no,

max(d.b_end_no),

max(d.position),

count(1) '總數量',

count(1)-sum(d.islend) '借出',

sum(d.islend) '損壞',

sum(d.islend*d.price) '損壞金額',

min(d.b_end_no)- d.b_start_no +1-count(1) '餘位',

stuff((select ', ' + d2.book_no

from @dd d2

where (d2.book_no = d.b_start_no and d2.islend=1)

for xml path(''),type).value('(./text())[1]','varchar(max)'),

1,2,''

) as '損壞的書號',

max(d.book_no ) 'b_start_no2',

max(d.b_end_no) 'b_start_no1'

from

@dd d

group by

d.b_start_no

3樓:小夥伴

b_start_no 與book_no 做個連結就能得到!

sql語句如何查詢兩個表的資料 將表1和表2的資料查詢為表3的樣子

4樓:匿名使用者

select 表1.科室,表2.血型 from 表1,表2 where 表1.p_no = 表2.p_no;

如上所示,這都是基本的sql查詢。

sql查詢兩個表中滿足某些條件的資料總數

5樓:匿名使用者

如果欄位一樣的話,可以用union all,即select * from 表1 where a,b,cunion all

select * from 表2 where a,b,c

6樓:匿名使用者

假設兩張表分別為tab1,tab2:

select sum(cnt) from (select count(1) cnt from tab1 where 滿足條件a,b,c

union all

select count(1) cnt from tab2 where 滿足條

件a,b,c)

7樓:匿名使用者

select

(select count(*) from t1 where ...)

+(select count(*) from t2 where ...)

8樓:移動引領生活

select count(欄位a) from table1 where a and b and c

union al

lselect count(欄位b) from table2 where a and b and c

sql怎麼同時查詢兩個表的資料?

9樓:匿名使用者

同時輸出ac01表中aab004和az03表中aab001和aab002的資料

select a.aab004, b.aab001, b.aab002 from ac01 a, az03 b;

(可以加where條件,例如:where a.aab001=b.aab001 )。

「兩個表中有相同的欄位aab001,然後我需要統計他們aab001不同值的數量該怎麼寫」

是不是要統計出 ac01表中aab001與az03表中aab001不同值的個數呀?

select a.aab004, b.aab001, b.aab002, count(*) as numb

from ac01 a, az03 b

where a.aab001!=b.aab001 ;

10樓:

你的題目寫的有點不清楚,有問題再補充,參考以下**select count(aab001)  as 不同值的數量 from(

select aab001 from ac01union

select aab001 from az03 ) as temp

11樓:匿名使用者

select ac01.aab004,az03.aab001,az03.

aab002,sum(case when ac01,az03 where ac01.aab001!=az03.

aab001 then 1 else 0) from ac01,az03 where ac01.aab001=az03.aab001)

12樓:若水

select t1.aab004, t2.aab001,t2.aab002 from ac01 t1,az03 t2 where t1.aab001=t2.aab001

13樓:

這樣可以完成統計畢竟複雜,用到了效率不高的子查詢,絕對會有更好的辦法,拋磚引玉,自勉

select ac.aab004,az.aab001,az.aab002,

(((select count(aab001) from ac01)+

(select count(aab001) from az03)))-

(select count(ac.aab001) from ac01 as ac inner join az03 as az

on ac.aab001=az.aab001)*2 as 不同的數量

from ac01 as ac inner join az03 as az

on ac.aab001=az.aab001

sql查詢並將查詢的結果插入到新的一個表裡?

14樓:匿名使用者

沒看到你統計表結構,給你寫個查詢,你自己插入吧select 班級,

sum(case when 性別='男' then 1 else 0 end) 男,

sum(case when 性別='女' then 1 else 0 end) 女,

count(*) 總人數

from 學生基本資訊表

group by 班級

15樓:匿名使用者

select a.*,b.* into 新表表名 from(select 班級,性別,count(性別) 人數 from 學生基本資訊表 gorup by 班級,性別) a,

(select 班級,count(班級) 總人數 from 學生基本資訊表 group by 班級) b

where a.班級=b.班級

如果要用insert命令插入,就去掉 "into 新表表名"

(注:中文該換的得換)

sql,把兩個表中的兩列資料合到一個表中

16樓:

兩個表的資料量一樣的嗎?

合併後建立新表嗎?

需要藉助輔助列

select identity(int,1,1) as guid ,val into #1 from table1

select identity(int,1,1) as guid ,val into #2 from table2

select a.val as val1,b.val as val2 into table3

from #1 a inner join #2 b on a.guid = b.guid

sql實現如下查詢:查詢符合條件的某欄位並在每個後面顯示統計記錄數,具體如圖:

17樓:匿名使用者

...你這

bai絕對

du是沒zhi

規律dao的硬性

18樓:

select a.unit,b.sum from (select unit from user where level = 3 ) a ,(select count(*) as sum from user where level = 3 ) b

sql怎麼查詢兩個表中不同的資料 5

19樓:

工具/材料:management studio。

1、首先在桌面上,點選「management studio」圖示。

2、其次在該介面中,點選「新建查詢」按鈕。

3、繼續在該介面中,輸入查詢兩個表中不同的資料的sql語句。

4、再者在該介面中,點選「執行」按鈕。

5、最後在該介面中,顯示兩個表中不同的資料。

oracle資料庫查詢兩個表然後把結果合併成表

實現的方法和詳細的操作步驟如下 1 首先,在計算機桌面上雙擊 management studio 圖示,如下圖所示,然後進入下一步。2 其次,完成上述步驟後,單擊左上角的 新建查詢 按鈕,如下圖所示,然後進入下一步。3 接著,完成上述步驟後,在介面中輸入sql語句 select from test1...

從多個表中查詢資料的sql語句,sql一個表中同時查詢兩個count的sql語句

建立一個儲存過程用來讀取 create procedure testpercudureasdeclare col integerdeclare tablename varchar 100 declare sql as varchar 200 begin select top 0 qqnum into...

使用union查詢兩張表資料的時候如何把查詢的資料存放到臨時表中,且為臨時表建立主鍵,求sql語句

一條語句只能做到將表的資料放到臨時表,但是不能為臨時表建立主鍵的.比如 create table temp table as select from table 如果要建立主鍵的話,就只能寫到一個pl sql塊裡面比如 declare begin execute immediate create t...