- 論壇徽章:
- 0
|
不過我寫了個巨呆的一個:
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
功能可以實現(xiàn),就是比較傻一點
不知道有沒有更好的辦法!
  |
|