條件複雜的sql語句查詢

2021-08-09 11:00:29 字數 979 閱讀 4082

有三張表 分別為 會員表(member) 銷售表(sale) 退貨表(regoods)

會員表有字段 memberid (會員id,主鍵) credits(積分); 

銷售表有字段 memberid(會員id ,外來鍵) 購買金額(mnaccount);

退貨表中有字段memberid(會員id ,外來鍵) 退貨金額(rmnaccount);

業務說明 : 1、銷售表中的銷售記錄可以是會員購買,也可是非會員購買。(即銷售表中的memberid可以為空)

2、銷售表中的乙個會員可以有多條購買記錄

3、退貨表中的退貨記錄可以是會員,也可是非會員

4、乙個會員可以有一條或多條退貨記錄

查詢需求 : 分組查出銷售表中所有會員購買金額,同時分組查出退貨表中所有會員的退貨金額,把會員id相同的購買金額-退款金額得到的結果更新到表會員表中對應會員的積分字段(credits)

select

s.memberid,

s.y1,

s1.y2,

(s.y1 - s1.y2)

from

( select

y.memberid,

sum(y.mnaccount) y1

from

member d

left join sale y on d.memberid = y.memberid

group by

y.memberid

) sleft join (

select

y.memberid,

sum(y.rmnaccount) y2

from

member d

left join regoods y on d.memberid = y.memberid

group by

y.memberid

) s1 on s.memberid = s1.memberid

sql複雜查詢語句

1.描述 在資料庫中使用sql語句查詢資料,常常需要做報表和統計分析。難免需要做很多的複雜查詢。解決方案 呼叫資料庫的自帶函式 我用的是mysql的函式 來查詢 函式中巢狀函式來實現複雜查詢 2.例項 求差函式 sum 函式巢狀函式查詢 使用timestampdiff函式查詢2002 01 01到現...

SQL常用條件查詢語句

select from table1 where 工資 2500 and 工資 3000 同上 select 姓名 from table1 where 性別 0 and 工資 4000 select from table1 where not 工資 3200 select from table1 o...

SQL語句多條件查詢

sql多條件查詢中如果有and和or,and的優先順序高於or,如果不加括號會先執行and,然後再執行or 資料表 一 查詢時先且查詢,則先and條件查詢,查詢結果與or後面的條件進行或查詢 sql語句 select from ceshi where name a and age 10 or 1查詢...