2011-08-07 84 views
0

有兩個數據庫,並參與了該查詢4桌。第一個數據庫(PhoneBills)包含第一個表(CallDetails),並在此有對列:幫助的複雜SQL查詢(很多JOIN的嗎?)

  1. [時間](開始時間)
  2. [從](主叫號碼)
  3. [爲了(目標數)
  4. [費用](貨幣)
  5. [長度(多長時間調用)

感興趣的列這裏[從]和[爲了]。

在第二數據庫(RTC - 這是一個的Lync持久數據DB),有感興趣的三個表:

  1. 資源(匹配資源ID到用戶名)
  2. ResourceDirectory(定義時間一個資源ID爲插入時,它最後更新)
  3. ResourcePhone(匹配ResouceID到PHONENUMBER)

老實說,我不知道是什麼ResourceDirectory定義,我GUE認爲用戶名匹配的電話號碼可以改變,並且目錄跟蹤那些時間。爲了簡化,我現在將忽略這部分。

我所試圖實現的是擺脫資源因爲我可以找到在ResourcePhone我的電話號碼匹配的用戶名。

+0

他在哪裏第一臺'CallDetails'來到這個問題呢? - 它只是一個資源和ResourcePhone –

+0

[CallDetails]擁有一個電話號碼之間用[資源ID],[資源]對的[資源ID]使用用戶名加入,[ResourcePhone]對電話號碼了。我試圖讓在[CallDetails] – CodeMinion

回答

2

不會在工作?

SELECT Username 
FROM Resource R 
JOIN ResourcePhone RP on R.ResourceID = RP.ResourceID 
WHERE RP.phonenumber = '1111111111' 
+0

哇數量的用戶名,那是快!作爲一個SQL新手,我只是不停地跑入語法或邏輯錯誤:)謝謝Hogan! – CodeMinion

+0

不客氣,祝你好運。 – Hogan

0

未經測試。今天早上我沒有咖啡。你已被警告。

select 
    pb.Time, 
    pb.From, r1.Username as FromName, 
    pb.To, r2.Username as ToName, 
    pb.Cost, pb.Length 
from PhoneBills pb 
inner join ResourcePhone rpfr on rpfr.PhoneNumber = pb.From 
inner join ResourcePhone rpto on rpto.PhoneNumber = pb.To 
inner join Resource r1 on r1.ResourceID = rpfr.ResourceID 
inner join Resource r2 on r2.ResourceID = rpto.ResourceID 

加入PhoneBills到ResourcePhone獲得訪問資源ID爲特定的電話號碼。然後將該ResourceID加入表資源以訪問用戶名。