高分懸賞解決思路
來源:互聯網
上載者:User
高分懸賞
財務報表:
序號 使用者名稱 姓名 續約(元) 贈送(元) 保證金(元) 註冊費(元) IP地址費(元) 使用費(元)
0 wsz xiaobai 60 10 0 0 50 20
1 bbb zhangs 50 0 0 0 30 100
表A以下欄位:
user(登入名稱)
name(姓名)
-----------------------------
表B有以下3個欄位:
type:(分5個類型:續約、贈送、保證金、註冊費、IP地址費 ,根據不同的情況type的值就不同)
savingnum(續約)
user(登入名稱)
time
----------------------------
表C有以下欄位:
user(登入名稱)
charge1(使用費)
time
----------------------------
表D有以下欄位:
user(登入名稱)
charge2(使用費)
time
關聯:這四個表的user是相等的,而且在各表中是唯一存在的。
注意:是報表,查出的值,都是某範圍內的某欄位的‘和’
每條記錄中的使用費,如果在D表中值非空,那麼就在C表中為0;如果在C表中值非0,那就不存在D表中。
問題:
1 查詢:在某條件時間($star_time<=time<=$end_time)內,找出某一範圍的續約($star_savingnum<=savingnum<=$end_savingnum)
2 查詢:在某條件時間($star_time<=time<=$end_time)內,找出某一範圍的使用費($star_savingnum<=savingnum<=$end_savingnum)
------解決方案--------------------
哪要看你的需求如何?
1 表B type:(分5個類型:續約、贈送、保證金、註冊費、IP地址費),類型的結構設定,對統計本身就有影響.
要麼取所有使用者的某種續約類型做統計,要麼取單個使用者的所有類型做統計,這個可以通過group by 來實現.
2 C和D表結構基本上是相同的,不知道你所謂的(如果在D表中值非空,那麼就在C表中為0;如果在C表中值非0,那就不存在D表中)是何解.
如果某個使用者在C表中有值又在D表中有值,哪就人為增加了難度.
------解決方案--------------------
探討
哪要看你的需求如何?
1 表B type:(分5個類型:續約、贈送、保證金、註冊費、IP地址費),類型的結構設定,對統計本身就有影響.
要麼取所有使用者的某種續約類型做統計,要麼取單個使用者的所有類型做統計,這個可以通過group by 來實現.
2 C和D表結構基本上是相同的,不知道你所謂的(如果在D表中值非空,那麼就在C表中為0;如果在C表中值非0,那就不存在D表中)是何解.
如果某個使用者在C表中有值又在D表中有值,哪就人為增加了難度.
------解決方案--------------------
探討
某條記錄的charge值,在C表中存在(並非0), 就會在D表中不存在。
只要在D表中存在,就不會在C表中存在,(0都沒有)