有没有办法检查 sql 中的特定一致性?

Is there a way to check a specific consistency in sql?

我的数据库中有这些 table:

粗体列是每个 table 的主键。

我需要在不使用函数的情况下找到数据库中每个日期(tDate 中)股价上涨的公司。

有没有办法做到这一点?

如果他们只有价格上涨,那么对于相同的代码,没有价格较低的新股票。

create table Company (
 Symbol varchar(30) primary key, 
 Name varchar(30),
 Sector int default 0, 
 Founded date, 
 Location varchar(30)
);

create table Stock (
 tDate date, 
 Symbol varchar(30), 
 Price decimal(10,2), 
 foreign key (Symbol) references Company(Symbol)
);

insert into Company (Symbol, Name) values
  ('rise', 'Rising Star Inc.')
, ('updo', 'Ups & Downs')

insert into Stock (tDate, Symbol, Price) values
  ('2021-12-01', 'rise', 101.00)
, ('2021-12-02', 'rise', 102.00)
, ('2021-12-03', 'rise', 103.00)
, ('2021-12-04', 'rise', 104.00)

, ('2021-12-01', 'updo', 202.00)
, ('2021-12-02', 'updo', 201.00)
, ('2021-12-03', 'updo', 204.00)
, ('2021-12-04', 'updo', 203.00)
SELECT Symbol
FROM Company
WHERE Symbol IN (
   SELECT Symbol
   FROM Stock
   GROUP BY Symbol
   HAVING COUNT(*) > 1
   EXCEPT
   SELECT DISTINCT Symbol
   FROM Stock s1
   WHERE EXISTS (
     SELECT 1
     FROM Stock s2
     WHERE s2.Symbol = s1.Symbol
       AND s2.tDate > s1.tDate
       AND s2.Price < s1.Price
   )
);
Symbol
rise

演示 db<>fiddle here