2012-02-27 45 views
0

我有一個包含服務名稱和費用的815記錄的excel文件。 在數據庫中,已經輸入了一些記錄,所以剩餘的781條記錄需要插入。從excel導入數據並插入規範化的sql表

問題是有兩個表,一個是departmentalservices,另一個是deptservicedetails。 部門服務表具有服務名稱(除其他外),並通過名爲service_id的列聯接到deptservicedetails。 Deptservicedetails是該服務的費用將出現的地方(因爲有現金和信用費但不擔心)。部門服務擁有所有的服務名稱,但每個服務的費用都不在細節表中。

現在,如果我通常使用該程序插入費用,它會花費很長時間,如你所知。 因此,是否有一種方法,我可以寫入多個插入查詢(使用excel公式)或者什麼,將與表中的ID匹配的Excel表中的名稱,因此我可以通過ID插入一個記錄到詳細信息表。

目前我可以寫名稱和費用的插入查詢,但詳細信息表需要服務ID,而不是插入查詢的名稱。

希望它的理解和感謝。

+1

你能否讓你的問題更抽象,並且發佈什麼數據應該去哪裏的細節? – devsnd 2012-02-27 14:25:43

回答

2

沒有更多的細節,這是在黑暗中的一點點。

在Excel中,您可以簡單地編寫一個公式來構建您的SQL INSERT語句,如果您使用INSERT INTO ... SELECT語句,則可以在插入過程中獲取service_id。 Excel公式是這樣的:

="INSERT INTO deptservicedetails SELECT " & B2 & "," & C2 & ", service_id FROM departmentalservices t2 WHERE t2.service_name = '" & A2 & "';" 

如果單元格B2 & C2是要插入(如果他們是字符串,那麼你就需要包括單引號)值和A2包含你想要的名稱查找身份證。

當然,您也可以將您的名稱/ ID數據導出到Excel中,執行VLOOKUP()並以這種方式構建您的SQL。

我會首先嚐試這一個記錄,驗證SQL是否正確形成,然後運行它爲您的所有插入。

+0

感謝這是一種使用插入我真的沒有在任何網站上看到的令人敬畏的方式。我使用子查詢,但它不允許。 對不起,我不能提供太多,但你回答它之前我可以這樣做 – Shakir 2012-02-28 08:34:30