mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
91 lines
2.4 KiB
Transact-SQL
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
|