亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1465 | 回復(fù): 2
打印 上一主題 下一主題

求助一段SQL文 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-04-25 17:30 |只看該作者 |倒序?yàn)g覽
現(xiàn)有兩張表:

一張表
member_regist_table:
user_id         varchar(64)
service_id     int
carrier           int
regist_date   timestamp

另一張表
member_unregist_log:
user_id              varchar(64)
service_id          int
carrier_id           int
regist_date        timestamp
unregist_date    timestamp

我現(xiàn)在想根據(jù)一個(gè)時(shí)間范圍:如2006年1月1號(hào) ----  2006年1月8號(hào)
查詢以下信息,該怎么寫sql語句,謝謝!
時(shí)間              會(huì)員數(shù)        退會(huì)數(shù)       增減數(shù)      有效數(shù)       入會(huì)總數(shù)
20060101           10          5            5          5               10
20060102            7           5            2          7               17
20060103           22          8            14        21             39
20060104           17          2            15        36             56
20060105           24          6            18        54             80
20060106           19          5            14        68             99
20060107            3          22          -19        58            102
20060107           32         14           -17       75            134

其中:會(huì)員數(shù)為這段時(shí)間范圍內(nèi)兩張表的user_id之和(member_unregist_log的regist_date字段在時(shí)間范圍內(nèi)即可)
退會(huì)數(shù)為該段時(shí)間范圍內(nèi)member_unregist_log里的退會(huì)user_id數(shù)(unregist_date字段在時(shí)間范圍內(nèi)即可)
增減數(shù)為  會(huì)員數(shù) -   退會(huì)數(shù)
有效數(shù)為member_regist_table里_date字段在時(shí)間范圍內(nèi)的user_id數(shù)
入會(huì)總數(shù)為 昨天入會(huì)總數(shù)+今天的會(huì)員數(shù)  (假定紀(jì)錄前一天的入會(huì)總數(shù)為0)


哎!描述了半天,希望大家能夠明白,也不辜負(fù)我寫了這么都!

論壇徽章:
1
榮譽(yù)會(huì)員
日期:2011-11-23 16:44:17
2 [報(bào)告]
發(fā)表于 2006-04-26 09:12 |只看該作者
分別對(duì)member_regist_table與member_unregist_log
利用select to_string(regist_date),count(*) from member_regist_table
      select to_string(unregist_date),count(*) from member_unregist_log
算出register的總數(shù)與ungister的總數(shù)..在去做相減與運(yùn)算...

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2006-04-26 13:27 |只看該作者

謝謝apile

謝謝apile

不過我寫了個(gè)巨呆的一個(gè):
SELECT
        DISTINCT to_char(mem_reg.regist_date,'yyyymmdd') AS date,
         ((
                SELECT
                        COUNT(*)
                FROM
                        member_regist_table AS regist
                WHERE
                        regist.service_id = 1 and
                        regist.carrier_id = 1 and
                        to_char(regist.regist_date,'yyyymmdd') = to_char(mem_reg.regist_date,'yyyymmdd')
         ) +
         (
                SELECT
                        COUNT(*)
                FROM
                        member_unregist_log AS unregist
                WHERE
                        unregist.service_id = 1 and
                        unregist.carrier_id = 1 and
                        to_char(unregist.regist_date,'yyyymmdd') = to_char(mem_reg.regist_date,'yyyymmdd')
         )) AS regist,
        (        SELECT
                        COUNT(*)
                FROM
                        member_unregist_log AS unregist
                WHERE
                        unregist.service_id = 1 and
                        unregist.carrier_id = 1 and
                        to_char(unregist.regist_date,'yyyymmdd') = to_char(mem_reg.regist_date,'yyyymmdd')
        ) AS unregist,
         ((
                SELECT
                        COUNT(*)
                FROM
                        member_regist_table AS regist
                WHERE
                        regist.service_id = 1 and
                        regist.carrier_id = 1 and
                        to_char(regist.regist_date,'yyyymmdd') = to_char(mem_reg.regist_date,'yyyymmdd')
         ) +
         (
                SELECT
                        COUNT(*)
                FROM
                        member_unregist_log AS unregist
                WHERE
                        unregist.service_id = 1 and
                        unregist.carrier_id = 1 and
                        to_char(unregist.regist_date,'yyyymmdd') = to_char(mem_reg.regist_date,'yyyymmdd')
         ) -
         (
                SELECT
                        COUNT(*)
                FROM
                        member_unregist_log AS unregist
                WHERE
                        unregist.service_id = 1 and
                        unregist.carrier_id = 1 and
                        to_char(unregist.regist_date,'yyyymmdd') = to_char(mem_reg.regist_date,'yyyymmdd')
         )) AS change,
        ((
                SELECT
                        COUNT(*)
                FROM
                        member_regist_table AS regist
                WHERE
                        regist.service_id = 1 and
                        regist.carrier_id = 1 and
                        to_char(regist.regist_date,'yyyymmdd') <= to_char(mem_reg.regist_date,'yyyymmdd')
        ) +
        ((
                SELECT
                        COUNT(*)
                FROM
                        member_unregist_log AS unregist
                WHERE
                        unregist.service_id = 1 and
                        unregist.carrier_id = 1 and
                        to_char(unregist.regist_date,'yyyymmdd') <= to_char(mem_reg.regist_date,'yyyymmdd')
        ) -
        (
                SELECT
                        COUNT(*)
                FROM
                        member_unregist_log AS unregist
                WHERE
                        unregist.service_id = 1 and
                        unregist.carrier_id = 1 and
                        to_char(unregist.unregist_date,'yyyymmdd') <= to_char(mem_reg.regist_date,'yyyymmdd')       
        ))) as validator,
        ((
                SELECT
                        COUNT(*)
                FROM
                        member_regist_table AS regist
                WHERE
                        regist.service_id = 1 and
                        regist.carrier_id = 1 and
                        to_char(regist.regist_date,'yyyymmdd') <= to_char(mem_reg.regist_date,'yyyymmdd')       
        ) +
        (
                SELECT
                        COUNT(*)
                FROM
                        member_unregist_log AS unregist
                WHERE
                        unregist.service_id = 1 and
                        unregist.carrier_id = 1 and
                        to_char(unregist.regist_date,'yyyymmdd') <= to_char(mem_reg.regist_date,'yyyymmdd')       
        )) AS total
FROM
        member_regist_table as mem_reg
WHERE
            to_char(mem_reg.regist_date,'yyyymmdd') <= '20060406'
        AND to_char(mem_reg.regist_date,'yyyymmdd') >= '20060401'
ORDER BY
        to_char(mem_reg.regist_date,'yyyymmdd') ASC

功能可以實(shí)現(xiàn),就是比較傻一點(diǎn)
不知道有沒有更好的辦法!

[ 本帖最后由 luol_001 于 2006-4-26 13:29 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP