Я хочу найти показания счетчика для данного дня транзакции. В некоторых случаях не будет никакого показания счетчика и хотелось бы видеть показания счетчика за предыдущий день.SQL Server 2008 - нужна помощь по противоположным запросам
Ниже приведен пример набора данных. Я использую SQL Server 2008
declare @meter table (UnitID int, reading_Date date,reading int)
declare @Transactions table (Transactions_ID int,UnitID int,Transactions_date date)
insert into @meter (UnitID,reading_Date,reading) values
(1,'1/1/2014',1000),
(1,'2/1/2014',1010),
(1,'3/1/2014',1020),
(2,'1/1/2014',1001),
(3,'1/1/2014',1002);
insert into @Transactions(Transactions_ID,UnitID,Transactions_date) values
(1,1,'1/1/2014'),
(2,1,'2/1/2014'),
(3,1,'3/1/2014'),
(4,1,'4/1/2014'),
(5,2,'1/1/2014'),
(6,2,'3/1/2014'),
(7,3,'4/1/2014');
select * from @meter;
select * from @Transactions;
Я ожидаю, чтобы получить следующий вывод
Transactions
Transactions_ID UnitID Transactions_date reading
1 1 1/1/2014 1000
2 1 2/1/2014 1010
3 1 3/1/2014 1020
4 1 4/1/2014 1020
5 2 1/1/2014 1001
6 2 3/1/2014 1001
7 3 4/1/2014 1002
Добавить, что вы пробовали до сих пор, а также желаемый результат, основанный на ваших данных образца. –
Как вы определяете «* предыдущий день»? Что делать, если альтернативное чтение недоступно? –
Вы хотите вывести каждое значение из транзакции и значение от счетчика, который является самым последним в или до транзакции_данных? –