2014-02-13 58 views
0

對不起我們 我想我在1查詢混合兩個requiements。家長的孩子計數 - 新的挑戰

我再次重申我的problem.Pls忽略上述DDL:

本報告的基本情況是:

主表具有不同的線路列表號或(手機號)誰所有有一個唯一的帳號和電話號碼。

我們在我們的數據庫中還有一個基表,它是每日快照,告訴我們在特定日期某個特定計劃上哪些數字處於活動狀態。

因此,例如可以說,2月12日20日電話號碼根據基準表是活動的。

現在和基礎表一起,我有一個MASTER表,它告訴我們這些電話號碼是如何到達基地的,這是一個新的連接,還是一個計劃從其他計劃改變。

爲了解釋親子關係,有一個領導者計劃(帶領導者/家長代碼),一個電話號碼包含這個家長代碼,這個家長可以有多個孩子電話號碼,他們都有共同的計劃,確定父母和子女號碼的方式是通過ACCOUNT NO,因爲父母和子女在給定的共享計劃中共享相同的帳號號碼。

我的數據庫和共享計劃代碼共有4個父計劃(4個不同的父代碼)。

在我的查詢中,我需要計算一個月內有多少共享者屬於某個特定的父母,還必須計算總父母數,有多少人計劃更改,有多少人是新連接,以及。

我可以計算我的基表中的父/子數,它工作正常。

以下是使用sqlfiddle.com修改的MASTER Table的ddl,這裏是它的鏈接。 http://sqlfiddle.com/#!2/83843/1

CREATE TABLE Master_Table 
    (
    BaseDate DATETIME 
    ,Account_no VARCHAR(4) 
    ,Phone_no INT 
    ,Code VARCHAR(2) 
    ,New_connect INT 
    ,Plan_change INT 
    ); 

INSERT INTO Master_Table 
     (BaseDate, Account_no, Phone_no, Code, New_connect, Plan_change) 
    VALUES ('2014-02-01 13:00:00', 'A123', 21332, 'P1', 1, 0), 
      ('2014-02-01 13:00:00', 'A123', 21444, 'C1', 0, 1), 
      ('2014-02-01 13:00:00', 'A123', 21445, 'C1', 1, 0), 
      ('2014-02-01 13:00:00', 'A124', 21333, 'P2', 1, 0), 
      ('2014-02-01 13:00:00', 'A124', 21771, 'C1', 0, 1), 
      ('2014-02-01 13:00:00', 'A124', 21772, 'C1', 0, 1), 
      ('2014-02-01 13:00:00', 'A124', 21773, 'C1', 1, 0), 
      ('2014-02-01 13:00:00', 'A126', 213321, 'P1', 1, 0), 
      ('2014-02-01 13:00:00', 'A126', 214443, 'C1', 0, 1), 
      ('2014-02-01 13:00:00', 'A126', 214452, 'C1', 1, 0), 
      ('2014-02-01 13:00:00', 'A129', 213331, 'P3', 1, 0), 
      ('2014-02-01 13:00:00', 'A129', 21771, 'C1', 0, 1), 
      ('2014-02-01 13:00:00', 'A129', 21772, 'C1', 0, 1), 
      ('2014-02-01 13:00:00', 'A129', 21773, 'C1', 1, 0); 

我所需的輸出是:

Base_Date   Parent_code Parent_new_connect Parent_plan_change Child_new_connect Child_plan_change 
'2014-02-01 13:00:00' P1   2     0     2     2 
'2014-02-01 13:00:00' P2   1     0     2     2 
'2014-02-01 13:00:00' P3   1     0     1     2 

希望它更清晰的這段時間。

+1

提問有關特定數據和查詢的好方法是在http://sqlfiddle.com/中設置測試數據並鏈接到該數據。這使得人們更容易理解它,並願意回答。 –

+0

完成格式化。謝謝 – user3024635

+0

我已經使用SQLFiddle重新發布了DDL – user3024635

回答

0

我想我明白你在找什麼,並在這裏有一個查詢,產生我認爲你想要的..我問你,請確認期望值P2 - Child_new_connet,因爲我得到一個不同的數字。以下是對您提供的數據的查詢。

select 
    M.BaseDate, 
    M.Code ParentCode, 
    sum(M.New_Connect) Parent_New_Connect, 
    sum(M.Plan_Change) Parent_Plan_Change, 
    (select sum(new_connect) connect from Master_Table where Code like 'C%' and Account_no in (select Account_no from Master_Table where Code = M.Code)) Child_New_Connect, 
    (select sum(Plan_change) connect from Master_Table where Code like 'C%' and Account_no in (select Account_no from Master_Table where Code = M.Code)) Child_Plan_Change 
from 
    Master_Table M 
where 
    Code like 'P%' 
group by 
    BaseDate, 
    Code