2012-02-27 19 views
0

私はサービス名と料金を含む815レコードのExcelファイルを持っています。 データベースには一部のレコードが入力されているため、残りの781レコードを挿入する必要があります。Excelからのデータのインポートと正規化されたSQLテーブルへの挿入

問題は2つのテーブルがあり、1つは部門サービスで、もう1つはdeptservicedetailsです。 部署テーブルにはサービス名(特に)があり、deptservicedetailsにservice_idという列で結合されています。 Deptservicedetailsは、そのサービスの料金が現れる場所です(現金とクレジットがありますが、それについては心配しません)。部門サービスにはすべてのサービス名がありますが、それぞれの料金は詳細表にはありません。

私は通常、料金を挿入するためにプログラムを使用する場合、あなたが知っているように長い時間がかかるでしょう。 したがって、複数の挿入クエリ(Excelの公式を使用して)や、Excelの名前とテーブル内のIDが一致するものを書くことができるため、idによって詳細テーブルにレコードを挿入することができます。

現時点では、名前と料金の挿入クエリを書くことができましたが、詳細テーブルにはサービスIDが必要であり、挿入クエリでは名前は必要ありません。

ご理解いただきありがとうございます。

+1

あなたはあなたの質問をより抽象的にすることができます。 – devsnd

答えて

2

これ以上の詳細がなければ、これは暗闇の中で一撃です。

Excelでは、SQL INSERTステートメントを作成するための式を記述するだけで、INSERT INTO ... SELECTステートメントを使用すると、挿入時にservice_idを取得できます。 Excelの数式、このような何か:セルB2 & C2は、挿入したい値(彼らは文字列であるならば、あなたは、単一引用符を含める必要があります)とA2は、あなたがしたいの名前が含まれている

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

のIDを参照してください。

もちろん、あなたの名前/ IDデータをExcelにエクスポートし、VLOOKUP()を実行してそのようにSQLを構築することもできます。

私は最初にこれを1つのレコードに対して試し、SQLが正しく形成されていることを検証してから、すべての挿入に対して実行します。

+0

ありがとうthatsは、私はhaventどのWebサイトで見た挿入を使用しての素晴らしい方法です。私はサブクエリを使用していましたが、それはそれを許可しませんでした。 申し訳ありませんが、私は多くを提供できませんでしたが、私はそうすることができる前にそれに答えました – Shakir

関連する問題