我們有一個雲捐助者數據庫,我們在我的公益組織中使用,但它有一個XML API,可以讓我們與GUI之外的數據庫進行交互。所提供的文檔中的用例都是關於將數據庫與我們的網站進行集成,但我想用它來自動執行重複且耗時的報告。如何獲得使用SQL連接到XML API的值列表?
我發現我可以在連接URL中引入一條SQL語句來提取我們需要的數字,但是我必須連接並檢索報表中每個單元的信息,一次只提取一個數值,所以它需要一段時間。我正在使用啓用宏的電子表格和VBA來運行一堆API調用並將結果插入到單元格中。有沒有辦法檢索一個包含所有值的XML文檔,我可以重複一遍?我在想所有的API調用和等待時間都在減慢。
這是一個例子的連接字符串與登錄,並通過省略:
https://www.donorperfect.net/prod/xmlrequest.asp?login=*****&pass=*****&action= SELECT SUM(dpgift.amount) from dpgift INNER JOIN dpgiftudf ON dpgift.gift_id=dpgiftudf.gift_id WHERE dpgiftudf.bu2_category = '01WEB' AND dpgift.record_type = 'G' AND dpgift.gift_date BETWEEN '3/1/2017' AND '3/31/2017'
只需在URL中的SQL是:
SELECT SUM(dpgift.amount)
from dpgift
INNER JOIN dpgiftudf ON dpgift.gift_id=dpgiftudf.gift_id
WHERE dpgiftudf.bu2_category = '01WEB'
AND dpgift.record_type = 'G'
AND dpgift.gift_date BETWEEN '3/1/2017' AND '3/31/2017'
這樣做的結果是:
<result><record><field name="" id="" value="2995"/></record></result>
我必須爲報表中的每個單元格執行此操作,並且大約有500個單元格。
我想拉它,這樣得到的XML會給我所有bu2_category
代碼的日期範圍內的所有值,而不會對每個單獨的值進行單獨調用(例如,一個花哨的SQL查詢使我一個包含所有字段和值的單個XML文檔)。
任何人都可以提出一個更好的SQL語句,我可以嘗試嗎?我是SQL和XML的新手。
太謝謝你了!它給了我所需要的。我現在在一秒鐘內檢索所有數據。現在我必須拋棄昨天編寫的所有代碼,並弄清楚如何實際解析XML。我相信,一旦我得到它的工作,它將閃電般快,因爲它在不到一秒的時間內獲得每一個總和(以前,你可以看到我的程序每秒鐘以一個單元的速率填充每個單元格)。這真讓人興奮。 – user6291867
好聽!很高興我能幫上忙!如果解決方案有幫助,請接受(勾選標記到旁邊)以確認解決方案。 – Parfait