このチュートリアルは説明のみを目的としています。チュートリアルに示されている接続文字列は、インストールされたデータベースには接続しません。チュートリアルで説明したプロセスを実行できるように、独自のサーバーに AdventureWorks データベースをセットアップする場合は、この GitHub ページを参照してください。
このチュートリアルでは、SQLエディタを使用してデータベースから Origin ワークシートにデータをインポートする方法を示します。次に、フィルタ、統計など、データに対していくつかの操作を実行して、グラフ作成に必要な結果を取得します。
必要なOriginのバージョン:Origin 9.0 SR0以降
このチュートリアルでは、以下の項目について解説します。
サーバマシンnoho上にSQLサーバAdventureWorks2008を予めセットアップ済であることを想定しています。
Provider=SQLOLEDB.1; Password=labtalk2015; Persist Security Info=TRUE; USER ID=CONNECT; Initial Catalog=AdventureWorks2008; DATA SOURCE=noho
string strDateBegin1$ = "1/1/2003"; string strDateEnd1$ = "12/31/2003"; string strDateBegin2$ = "1/1/2004"; string strDateEnd2$ = "12/31/2004";
ダイアログは次のようになります。
SELECT TABLE2003.Name, TABLE2003.LineTotalFor2003, TABLE2004.LineTotalFor2004 FROM (SELECT Production.ProductCategory.Name, LINETOALANDNAME2003.LineTotalFor2003 FROM (SELECT SUM(SALEANDPRODUCT2003.LineTotal) AS LineTotalFor2003, Production.ProductSubcategory.ProductCategoryID FROM (SELECT SALEINFO2003.LineTotal, PRODUCTINFO2003.ProductSubcategoryID FROM (SELECT Sales.SalesOrderheader.OrderDate, Sales.SalesOrderDetail.LineTotal, Sales.SalesOrderDetail.ProductID FROM Sales.SalesOrderheader INNER JOIN Sales.SalesOrderDetail ON Sales.SalesOrderheader.SalesOrderID=Sales.SalesOrderDetail.SalesOrderID WHERE Sales.SalesOrderheader.OrderDate BETWEEN '%(strDateBegin1$)' AND '%(strDateEnd1$)') AS SALEINFO2003 INNER JOIN (SELECT Production.Product.ProductID, Production.Product.ProductSubcategoryID FROM Production.Product) AS PRODUCTINFO2003 ON SALEINFO2003.ProductID=PRODUCTINFO2003.ProductID) AS SALEANDPRODUCT2003 INNER JOIN Production.ProductSubcategory ON SALEANDPRODUCT2003.ProductSubcategoryID=Production.ProductSubcategory.ProductSubcategoryID GROUP BY Production.ProductSubcategory.ProductCategoryID) AS LINETOALANDNAME2003 INNER JOIN Production.ProductCategory ON LINETOALANDNAME2003.ProductCategoryID=Production.ProductCategory.ProductCategoryID) AS TABLE2003 INNER JOIN (SELECT Production.ProductCategory.Name, LINETOALANDNAME2004.LineTotalFor2004 FROM (SELECT SUM(SALEANDPRODUCT2004.LineTotal) AS LineTotalFor2004, Production.ProductSubcategory.ProductCategoryID FROM (SELECT SALEINFO2004.LineTotal, PRODUCTINFO2004.ProductSubcategoryID FROM (SELECT Sales.SalesOrderheader.OrderDate, Sales.SalesOrderDetail.LineTotal, Sales.SalesOrderDetail.ProductID FROM Sales.SalesOrderheader INNER JOIN Sales.SalesOrderDetail ON Sales.SalesOrderheader.SalesOrderID=Sales.SalesOrderDetail.SalesOrderID WHERE Sales.SalesOrderheader.OrderDate BETWEEN '%(strDateBegin2$)' AND '%(strDateEnd2$)') AS SALEINFO2004 INNER JOIN (SELECT Production.Product.ProductID, Production.Product.ProductSubcategoryID FROM Production.Product) AS PRODUCTINFO2004 ON SALEINFO2004.ProductID=PRODUCTINFO2004.ProductID) AS SALEANDPRODUCT2004 INNER JOIN Production.ProductSubcategory ON SALEANDPRODUCT2004.ProductSubcategoryID=Production.ProductSubcategory.ProductSubcategoryID GROUP BY Production.ProductSubcategory.ProductCategoryID) AS LINETOALANDNAME2004 INNER JOIN Production.ProductCategory ON LINETOALANDNAME2004.ProductCategoryID=Production.ProductCategory.ProductCategoryID) AS TABLE2004 ON TABLE2003.Name=TABLE2004.Name