2015-12-14 68 views
-1

有3個SQl服務器表: 1.表帳戶 - 所有類型的帳戶和屬性 - 行 - A = 123 B = 456 C = 789〜3個每個客戶帳戶,可以有多個B和CS爲一個客戶加入表以從表#2中獲取表1中的每個相關/多行的SQL服務器中的ID

  • 表FlattenedHierarchy - 對於每個賬戶類型的一列(A,B ,C)詳細列出關係 - 列A = 123 B = 456 C = 789

  • 表訂閱 - 訂閱和屬性只有一種類型的帳戶,即C

  • 我想要獲取所有屬於客戶的賬戶類型= B的列表,並且相應的Cs具有活動的訂閱。和B的名單也應該有相應的A公司,上市爲同一客戶可以有兩個B的,但兩個B行應彈出相同A.

    Sample Tables and expected sample

    我如何實現這一目標?

    回答

    0

    如果我理解正確的話,這應該工作:

    SELECT * FROM Account t1 
        LEFT JOIN `FlattenedHierarchy` t2 ON t1.AcctId=t2.B 
        LEFT JOIN `Subscriptions` t3 ON t2.C=t3.Acct 
        WHERE t1.AcctType='B' AND STR_TO_DATE(t3.`End Date`,'%c/%d/%Y') < CURDATE() 
        AND t3.Acct IS NOT NULL 
    
    +0

    非常感謝你,我曾試圖加入左側的不同組合,但沒有工作的某些原因。再次感謝。 – humility

    相關問題