SQL
SQL
GO
CREATE TRIGGER PreventDuplicateActiveContract
ON contracts
AFTER INSERT
AS
BEGIN
DECLARE @ClinetID INT, @StartDate DATE, @ExpireDate DATE;
SELECT
@ClinetID = client_id,
@StartDate = start_date,
@ExpireDate = expire_date
FROM INSERTED;
IF EXISTS (
SELECT 1
FROM contracts
WHERE client_id = @ClinetID
AND expire_date >= GETDATE()
AND id <> (SELECT id FROM INSERTED)
)
BEGIN
RAISERROR ('Client already has an active contract', 16, 1);
ROLLBACK;
END
END;
GO
--5
------------------------------------------
SELECT *
FROM properties
WITH (INDEX(idx_properties_price_filtered))
WHERE approve = 1
AND price > 300;
SELECT *
FROM users
WHERE national_number = '01JFZBF790FCZP8ZHQSVEN8GBP';
SELECT *
FROM clients
WHERE national_number = '01JFZAXTEQ383PD36VNF1YME8R';
SELECT *
FROM users
WHERE phone_number = '+595 605 287 2832';
SELECT *
FROM clients
WHERE phone_number = '+33 511 126 1415';
--------------------------
SELECT
COUNT(DISTINCT national_number) AS distinct_values,
COUNT(*) AS total_rows,
CAST(COUNT(DISTINCT national_number) AS FLOAT) / COUNT(*) AS selectivity_ratio
FROM Clients;
/*
DROP TABLE Files;
DROP TABLE Client_Property;
DROP TABLE Properties;
DROP TABLE Regions;
DROP TABLE Cities;
DROP TABLE States;
DROP TABLE Contracts;
DROP TABLE Requests;
DROP TABLE Users;
DROP TABLE Clients;*/