Что на самом деле происходит с моим sql запросом (MySQL), я не могу понять, почему я получаю синтаксические ошибки - PullRequest
0 голосов
/ 28 апреля 2020
SELECT SUM(RS.AuthTaxRate) AS TaxRate
FROM (SELECT ta.TaxAuthority, tr.AuthTaxRate, tr.Effective AS EffectiveDate,
             COALESCE(LEAD(tr.Effective, 1) OVER (PARTITION BY ta.TaxAuthority ORDER BY tr.Effective ASC), GETDATE()) AS NextRateDate
      FROM #TaxRates tr LEFT JOIN
           #TaxAreaAuthority ta 
           ON ta.TaxAuthority = tr.TaxAuthority
      WHERE ta.TaxArea = 'city2'
      GROUP BY ta.TaxAuthority , tr.AuthTaxRate , tr.Effective
     ) AS RS
 WHERE '1994-11-01' BETWEEN RS.EffectiveDate AND RS.NextRateDate;

Вот скрипт создания:

create database taxes;

use taxes;

create table TaxAreaAuthority (TaxAuthority VARCHAR(10), TaxArea VARCHAR(10));

INSERT INTO TaxAreaAuthority VALUES('city1', 'city1'), 

                                ('city2', 'city2'), 

                                ('city3', 'city3'), 

                                ('county1', 'city1'), 

                                ('county1', 'city2'), 

                                ('county2', 'city3'),

                                ('state1', 'city1'), 

                                ('state1', 'city2'), 

                                ('state1', 'city3');

create table TaxRates (TaxAuthority VARCHAR(10), Effective DATE, AuthTaxRate DECIMAL(2,1));

INSERT INTO TaxRates VALUES('city1', '1993-01-01', 1.0),

                        ('city1', '1994-01-01', 1.5),

                        ('city2', '1993-09-01', 1.5),

                        ('city2', '1994-01-01', 2.0),

                        ('city2', '1995-01-01', 2.5),

                        ('city3', '1993-01-01', 1.9),

                        ('city3', '1993-07-01', 2.3),

                        ('county1', '1993-01-01', 2.3),

                        ('county1', '1994-10-01', 2.5),

                        ('county1', '1995-01-01', 2.7),

                        ('county2', '1993-01-01', 2.4),

                        ('county2', '1994-01-01', 2.7),

                        ('county2', '1995-01-01', 2.8),

                        ('state1', '1993-01-01', 0.5),

                        ('state1', '1994-01-01', 0.8),

                        ('state1', '1994-07-01', 0.9),

                        ('state1', '1994-10-01', 1.1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...