Files
sql-server-samples/samples/features/sql-graph/DerivedTablesAndViewsInGraphMatch/DerivedTablesAndViewsInGraphMatch.sql
T
2023-02-20 19:33:29 +00:00

91 lines
2.4 KiB
Transact-SQL

drop view if exists OperatesIn, CUstomer, Novelty_supplier, Novelty_customer
go
----------------------------------------------------------------------------
-- Querying heterogeneous edges
----------------------------------------------------------------------------
CREATE VIEW OperatesIn AS
SELECT *, 'located' AS relation FROM locatedIn
UNION ALL
SELECT *, 'delivery' FROM deliveryIn
GO
SELECT SupplierID, SupplierName, PhoneNumber, relation
FROM Supplier,
City,
OperatesIn
WHERE MATCH(Supplier-(OperatesIn)->City)
AND City.CityName = 'San Francisco'
----------------------------------------------------------------------------
-- Querying heterogeneous nodes
----------------------------------------------------------------------------
CREATE VIEW Customer AS
SELECT SupplierID AS ID,
SupplierName AS NAME,
SupplierCategory AS CATEGORY
FROM Supplier
UNION ALL
SELECT CustomerID,
CustomerName,
CustomerCategory
FROM Customers
GO
SELECT Customer.ID, Customer.NAME, Customer.CATEGORY
FROM Customer,
City,
locatedIn
WHERE MATCH(Customer-(locatedIn)->City)
AND City.CityName = 'San Francisco'
SELECT Customer.ID, Customer.NAME, Customer.CATEGORY
FROM Customer,
City,
OperatesIn
WHERE MATCH(Customer-(OperatesIn)->City)
AND City.CityName = 'San Francisco'
----------------------------------------------------------------------------
-- Querying heterogeneous nodes and edges
----------------------------------------------------------------------------
CREATE VIEW Novelty_Supplier AS
SELECT SupplierID,
SupplierName ,
SupplierCategory ,
ValidTo
FROM Supplier
WHERE SupplierCategory LIKE '%Novelty%' OR SupplierCategory LIKE '%Toy%'
GO
CREATE VIEW Novelty_Customer AS
SELECT CustomerID,
CustomerName,
CustomerCategory,
ValidTo
FROM Customers
WHERE CustomerCategory LIKE '%Novelty%' OR CustomerCategory LIKE '%Gift%'
GO
SELECT Name, ID, Category
FROM
(SELECT SupplierID AS ID, SupplierName AS Name,
SupplierCategory AS Category, ValidTo
FROM Novelty_Supplier WHERE ValidTo > getdate()
UNION ALL
SELECT CustomerID, CustomerName, CustomerCategory, ValidTo
FROM Novelty_Customer WHERE ValidTo > getdate()) AS NoveltyCust,
StockItems,
bought,
OperatesIn,
City
WHERE MATCH(City<-(OperatesIn)-NoveltyCust-(bought)->Stockitems)
AND StockItemName = 'White chocolate snow balls 250g'
AND city.cityname = 'San Francisco'
GO