在這裏很受挫。我不是數據庫管理員,但可以解決。我正在寫一些針對Progress View OpenEdge數據庫的ODBC查詢,我們只能查看該數據庫。直到最近他們改變了數據結構以及誰知道爲什麼,最長時間沒有問題,他們將客戶電話號碼轉移到他們自己的「聯繫人」表中,而在「cif」之前,地址等仍然存在。Progress OpenEdge,ODBC,記錄集,加入,哦我的
與其爲每個電話號碼的每個客戶和字段創建一行「聯繫人」表,他們使用0-4的代碼,號碼/電子郵件和客戶。所以如果客戶有4個電話號碼,他們有4行,不同的代碼,聯繫人字段和客戶名稱重複。
我試圖用「cif」表加入「contact」表,所以無論cif列出多少次,它都會返回客戶的每一個提及的「cif」,但包含所有電話號碼與每行中的「聯繫人」相關聯。簡化
表結構如下所示:
Table "contact"
code | contact(#) | customer
--------------------------------
0 | (123)456-7890 | ABC Corp
1 | (123)456-7891 | ABC Corp
0 | (987)654-3210 | CBA Inc
Table "cif"
customer | b_in_low | b_in_high
----------------------------------
ABC Corp | 50.45 | 134.66
ABC Corp | 64.45 | 188.99
CBA Inc | 12.56 | 890.33
我試圖返回爲每個行的接排「到岸價格」,而是包括從「接觸」,因此上表將返回所有數字:
rsRow1)ABC公司,0,(123)456-7890,1,(123)456-7891,50.45,134.66
rsRow2)ABC公司,0,(123)456-7890,1 ,(123)456-7891,64.45,188.99
rsRow3)CBA有限公司,0,(987)654-3210 ,,, 12.56,890.00
我不想:
rsRow1)ABC公司,0,#,50.45,134.66
rsRow2)ABC公司,1,#,50.45,134.66
rsRow3)ABC公司,0,#,64.45,188.99
rsRow4)ABC公司,1,#,64.45,188.99
rsRow5) CBA Inc,0,#,12.56 | 890.00
有意義嗎?我可以通過「cif」表上的一個rs來工作,並且在每個重複區域中,使用「cif.customer」作爲WHERE過濾器對「contact」執行另一個查詢,但顯然它非常緩慢並且會導致潛在的數以千計的查詢。
我可以讓它從「到岸價格」,但只有1號從「接觸」只返回1行
或
我可以得到它返回最多5重複「到岸價格」與線每個5個不同的電話號碼。
簡而言之,我如何從「cif」有效地獲得1行,同時列出來自「contact」的所有+ -5電話號碼?
我看不到一種方法來做到這一點,而無需在結果側編寫一些代碼將行轉換爲列。 –
這就是爲什麼我在這裏拍攝Tim:D我最終使用ajax來爲自己的聯繫信息提供一個格式化的頁面。無論如何至少現在。爲我們的需求工作得很好,並且比第一個放置第二個記錄集的速度快得多,儘管它本質上是做同樣的事情。 – user3385662
預期的結果是否正確? ABC Corp公司的2號線不應該是1號嗎? So: ABC Corp,0,(123)456-7890,1,(123)456-7891,50.45,134.66 – RonaldB