mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
334 lines
8.9 KiB
Transact-SQL
334 lines
8.9 KiB
Transact-SQL
-- clean database
|
|
DROP TABLE IF EXISTS Graph.Customers;
|
|
DROP TABLE IF EXISTS Graph.StockItems;
|
|
DROP TABLE IF EXISTS Graph.Suppliers;
|
|
|
|
DROP TABLE IF EXISTS Graph.OrderLines_CustomersToStockItems;
|
|
DROP TABLE IF EXISTS Graph.OrderLines_StockItemsToCustomers;
|
|
|
|
DROP TABLE IF EXISTS Graph.InvoiceLines_CustomersToStockItems;
|
|
DROP TABLE IF EXISTS Graph.InvoiceLines_StockItemsToCustomers;
|
|
|
|
DROP TABLE IF EXISTS Graph.PurchaseOrderLines_SuppliersToStockItems;
|
|
DROP TABLE IF EXISTS Graph.PurchaseOrderLines_StockItemsToSuppliers;
|
|
|
|
DROP SCHEMA IF EXISTS Graph;
|
|
go
|
|
|
|
-- define schema
|
|
CREATE SCHEMA Graph;
|
|
go
|
|
|
|
/* SALES schema */
|
|
-- create node table for Sales.Customers
|
|
CREATE TABLE Graph.Customers (
|
|
CustomerID int,
|
|
CustomerName nvarchar(100),
|
|
BillToCustomerID int,
|
|
CustomerCategoryID int,
|
|
BuyingGroupID int,
|
|
PrimaryContactPersonID int,
|
|
AlternateContactPersonID int,
|
|
DeliveryMethodID int,
|
|
DeliveryCityID int,
|
|
PostalCityID int,
|
|
CreditLimit decimal(18,2),
|
|
AccountOpenedDate date,
|
|
StandardDiscountPercentage decimal(18,3),
|
|
IsStatementSent bit,
|
|
IsOnCreditHold bit,
|
|
PaymentDays int,
|
|
PhoneNumber nvarchar(20),
|
|
WebsiteURL nvarchar(256),
|
|
DeliveryAddressLine1 nvarchar(60),
|
|
DeliveryAddressLine2 nvarchar(60),
|
|
DeliveryPostalCode nvarchar(10),
|
|
DeliveryLocation geography,
|
|
PostalAddressLine1 nvarchar(60),
|
|
PostalAddressLine2 nvarchar(60),
|
|
PostalPostalCode nvarchar(10),
|
|
LastEditedBy int,
|
|
ValidFrom datetime2,
|
|
ValidTo datetime2
|
|
) AS NODE;
|
|
|
|
-- create edge table for Sales.Orders and Sales.Orderlines
|
|
-- LINK: CUSTOMERS -->> STOCKITEMS
|
|
CREATE TABLE Graph.OrderLines_CustomersToStockItems (
|
|
|
|
-- from Sales.Orders
|
|
OrderID int,
|
|
CustomerID int,
|
|
SalespersonPersonID int,
|
|
PickedByPersonID int,
|
|
ContactPersonID int,
|
|
BackorderOrderID int,
|
|
OrderDate date,
|
|
ExpectedDeliveryDate date,
|
|
CustomerPurchaseOrderNumber nvarchar(20),
|
|
IsUndersupplyBackordered bit,
|
|
Comments nvarchar(max),
|
|
DeliveryInstructions nvarchar(max),
|
|
InternalComments nvarchar(max),
|
|
|
|
-- from Sales.OrderLines
|
|
StockItemID int,
|
|
Description nvarchar(100),
|
|
PackageTypeID int,
|
|
Quantity int,
|
|
UnitPrice decimal(18,2),
|
|
TaxRate decimal(18,3),
|
|
PickedQuantity int,
|
|
PickingCompletedWhen datetime2,
|
|
LastEditedBy int,
|
|
LastEditedWhen datetime2
|
|
) AS EDGE;
|
|
|
|
-- create edge table for Sales.Invoices and Sales.InvoiceLines
|
|
-- LINK: CUSTOMERS -->> STOCKITEMS
|
|
CREATE TABLE Graph.InvoiceLines_CustomersToStockItems (
|
|
|
|
-- from Sales.Invoices
|
|
InvoiceID int,
|
|
CustomerID int,
|
|
BillToCustomerID int,
|
|
OrderID int,
|
|
DeliveryMethodID int,
|
|
ContactPersonID int,
|
|
AccountsPersonID int,
|
|
SalespersonPersonID int,
|
|
PackedByPersonID int,
|
|
InvoiceDate date,
|
|
CustomerPurchaseOrderNumber nvarchar(20),
|
|
IsCreditNote bit,
|
|
CreditNoteReason nvarchar(max),
|
|
Comments nvarchar(max),
|
|
DeliveryInstructions nvarchar(max),
|
|
InternalComments nvarchar(max),
|
|
TotalDryItems int,
|
|
TotalChillerItems int,
|
|
DeliveryRun nvarchar(5),
|
|
RunPosition nvarchar(5),
|
|
ReturnedDeliveryData nvarchar(max),
|
|
ConfirmedDeliveryTime datetime2,
|
|
ConfirmedReceivedBy nvarchar(4000),
|
|
|
|
-- from Sales.InvoiceLines
|
|
InvoiceLineID int,
|
|
StockItemID int,
|
|
Description nvarchar(100),
|
|
PackageTypeID int,
|
|
Quantity int,
|
|
UnitPrice decimal(18,3),
|
|
TaxRate decimal(18,2),
|
|
TaxAmount decimal(18,2),
|
|
LineProfit decimal(18,2),
|
|
ExtendedPrice decimal(18,2),
|
|
LastEditedBy int,
|
|
LastEditedWhen datetime2
|
|
) AS EDGE;
|
|
|
|
|
|
-- create edge table for Sales.Orders and Sales.Orderlines
|
|
-- LINK: STOCKITEMS -->> CUSTOMERS
|
|
CREATE TABLE Graph.OrderLines_StockItemsToCustomers (
|
|
|
|
-- from Sales.Orders
|
|
OrderID int,
|
|
CustomerID int,
|
|
SalespersonPersonID int,
|
|
PickedByPersonID int,
|
|
ContactPersonID int,
|
|
BackorderOrderID int,
|
|
OrderDate date,
|
|
ExpectedDeliveryDate date,
|
|
CustomerPurchaseOrderNumber nvarchar(20),
|
|
IsUndersupplyBackordered bit,
|
|
Comments nvarchar(max),
|
|
DeliveryInstructions nvarchar(max),
|
|
InternalComments nvarchar(max),
|
|
|
|
-- from Sales.OrderLines
|
|
StockItemID int,
|
|
Description nvarchar(100),
|
|
PackageTypeID int,
|
|
Quantity int,
|
|
UnitPrice decimal(18,2),
|
|
TaxRate decimal(18,3),
|
|
PickedQuantity int,
|
|
PickingCompletedWhen datetime2,
|
|
LastEditedBy int,
|
|
LastEditedWhen datetime2
|
|
) AS EDGE;
|
|
|
|
-- create edge table for Sales.Invoices and Sales.InvoiceLines
|
|
-- LINK: STOCKITEMS -->> CUSTOMERS
|
|
CREATE TABLE Graph.InvoiceLines_StockItemsToCustomers (
|
|
|
|
-- from Sales.Invoices
|
|
InvoiceID int,
|
|
CustomerID int,
|
|
BillToCustomerID int,
|
|
OrderID int,
|
|
DeliveryMethodID int,
|
|
ContactPersonID int,
|
|
AccountsPersonID int,
|
|
SalespersonPersonID int,
|
|
PackedByPersonID int,
|
|
InvoiceDate date,
|
|
CustomerPurchaseOrderNumber nvarchar(20),
|
|
IsCreditNote bit,
|
|
CreditNoteReason nvarchar(max),
|
|
Comments nvarchar(max),
|
|
DeliveryInstructions nvarchar(max),
|
|
InternalComments nvarchar(max),
|
|
TotalDryItems int,
|
|
TotalChillerItems int,
|
|
DeliveryRun nvarchar(5),
|
|
RunPosition nvarchar(5),
|
|
ReturnedDeliveryData nvarchar(max),
|
|
ConfirmedDeliveryTime datetime2,
|
|
ConfirmedReceivedBy nvarchar(4000),
|
|
|
|
-- from Sales.InvoiceLines
|
|
InvoiceLineID int,
|
|
StockItemID int,
|
|
Description nvarchar(100),
|
|
PackageTypeID int,
|
|
Quantity int,
|
|
UnitPrice decimal(18,3),
|
|
TaxRate decimal(18,2),
|
|
TaxAmount decimal(18,2),
|
|
LineProfit decimal(18,2),
|
|
ExtendedPrice decimal(18,2),
|
|
LastEditedBy int,
|
|
LastEditedWhen datetime2
|
|
) AS EDGE;
|
|
|
|
|
|
/* WAREHOUSE schema */
|
|
-- create node table for Warehouse.StockItems
|
|
CREATE TABLE Graph.StockItems (
|
|
StockItemID int,
|
|
StockItemName nvarchar(100),
|
|
SupplierID int,
|
|
ColorID int,
|
|
UnitPackageID int,
|
|
OuterPackageID int,
|
|
Brand nvarchar(50),
|
|
Size nvarchar(20),
|
|
LeadTimeDays int,
|
|
QuantityPerOuter int,
|
|
IsChillerStock bit,
|
|
Barcode nvarchar(50),
|
|
TaxRate decimal(18,3),
|
|
UnitPrice decimal(18,2),
|
|
RecommendedRetailPrice decimal(18,2),
|
|
TypicalWeightPerUnit decimal(5,2),
|
|
MarketingComments nvarchar(max),
|
|
InternalComments nvarchar(max),
|
|
Photo varbinary(max),
|
|
CustomFields nvarchar(max),
|
|
Tags nvarchar(max),
|
|
SearchDetails nvarchar(max),
|
|
LastEditedBy int,
|
|
ValidFrom datetime2,
|
|
ValidTo datetime2
|
|
) AS NODE;
|
|
|
|
/* PURCHASING schema */
|
|
-- create node table for Purchasing.Suppliers
|
|
CREATE TABLE Graph.Suppliers (
|
|
SupplierID int,
|
|
SupplierName nvarchar(100),
|
|
SupplierCategoryID int,
|
|
PrimaryContactPersonID int,
|
|
AlternateContactPersonID int,
|
|
DeliveryMethodID int,
|
|
DeliveryCityID int,
|
|
PostalCityID int,
|
|
SupplierReference nvarchar(20),
|
|
BankAccountName nvarchar(50),
|
|
BankAccountBranch nvarchar(50),
|
|
BankAccountCode nvarchar(20),
|
|
BankAccountNumber nvarchar(20),
|
|
BankInternationalCode nvarchar(20),
|
|
PaymentDays int,
|
|
InternalComments nvarchar(max),
|
|
PhoneNumber nvarchar(20),
|
|
FaxNumber nvarchar(20),
|
|
WebsiteURL nvarchar(256),
|
|
DeliveryAddressLine1 nvarchar(60),
|
|
DeliveryAddressLine2 nvarchar(60),
|
|
DeliveryPostalCode nvarchar(10),
|
|
DeliveryLocation geography,
|
|
PostalAddressLine1 nvarchar(60),
|
|
PostalAddressLine2 nvarchar(60),
|
|
PostalPostalCode nvarchar(10),
|
|
LastEditedBy int,
|
|
ValidFrom datetime2,
|
|
ValidTo datetime2
|
|
) AS NODE
|
|
|
|
-- create edge table for Purchasing.PurchaseOrders and Purchasing.PurchaseOrderLines
|
|
-- LINK: SUPPLIERS -->> STOCKITEMS
|
|
CREATE TABLE Graph.PurchaseOrderLines_SuppliersToStockItems (
|
|
|
|
-- from Purchasing.PurchaseOrders
|
|
PurchaseOrderID int,
|
|
SupplierID int,
|
|
OrderDate date,
|
|
DeliveryMethodID int,
|
|
ContactPersonID int,
|
|
ExpectedDeliveryDate date,
|
|
SupplierReference nvarchar(20),
|
|
IsOrderFinalized bit,
|
|
Comments nvarchar(max),
|
|
InternalComments nvarchar(max),
|
|
|
|
-- from Purchasing.PurchaseOrderLines
|
|
PurchaseOrderLineID int,
|
|
StockItemID int,
|
|
OrderedOuters int,
|
|
Description nvarchar(100),
|
|
ReceivedOuters int,
|
|
PackageTypeID int,
|
|
ExpectedUnitPricePerOuter decimal(18,2),
|
|
LastReceiptDate date,
|
|
IsOrderLineFinalized bit,
|
|
LastEditedBy int,
|
|
LastEditedWhen datetime2
|
|
) AS EDGE;
|
|
|
|
-- create edge table for Purchasing.PurchaseOrders and Purchasing.PurchaseOrderLines
|
|
-- LINK: STOCKITEMS -->> SUPPLIERS
|
|
CREATE TABLE Graph.PurchaseOrderLines_StockItemsToSuppliers (
|
|
|
|
-- from Purchasing.PurchaseOrders
|
|
PurchaseOrderID int,
|
|
SupplierID int,
|
|
OrderDate date,
|
|
DeliveryMethodID int,
|
|
ContactPersonID int,
|
|
ExpectedDeliveryDate date,
|
|
SupplierReference nvarchar(20),
|
|
IsOrderFinalized bit,
|
|
Comments nvarchar(max),
|
|
InternalComments nvarchar(max),
|
|
|
|
-- from Purchasing.PurchaseOrderLines
|
|
PurchaseOrderLineID int,
|
|
StockItemID int,
|
|
OrderedOuters int,
|
|
Description nvarchar(100),
|
|
ReceivedOuters int,
|
|
PackageTypeID int,
|
|
ExpectedUnitPricePerOuter decimal(18,2),
|
|
LastReceiptDate date,
|
|
IsOrderLineFinalized bit,
|
|
LastEditedBy int,
|
|
LastEditedWhen datetime2
|
|
) AS EDGE;
|
|
|
|
go
|