Eu tenho esta tabela:
As 2 colunas importantes aqui são domainid e Soldtickets.
Soldtickets mostra quantos ingressos foram vendidos hoje.
Eu faço uma chamada para o meu servidor e ele me diz que fiz a chamada em "2016-03-30 14:18:01.4130000" e que 0 tickets foram vendidos para o Domínio com DomainId 53.
Estou tentando descobrir como posso encontrar a diferença.
Eu ligo para o servidor a cada dois minutos e obtenho os dados. Quero verificar os dados que obtive nos últimos 15 minutos e ver se os ingressos vendidos mudaram e quanto.
Exemplo:
No :
30/03/2016 14:18:01.4130000
Para DomainId
53
0 Ingressos Vendidos
No :
30/03/2016 14:26:01.4130000
Para DomainId
53
5 ingressos vendidos (total de 5 ingressos para hoje)
No :
30/03/2016 14:30:01.4130000
Para DomainId
53
5 Ingressos Vendidos (o mesmo de antes, SEM alteração)
Quero saber quantos foram vendidos nos últimos 15 minutos. Neste caso, seriam 5 ingressos, mas e se em
2016-03-30 14:44:01.4130000 Retorno que vendi um total de 7 ingressos hoje, então a diferença nos últimos 15 minutos é de 2 ingressos.
Até agora, posso obter as inserções dos últimos 15 minutos da seguinte forma:
DECLARE @LatestFifteenMinTickets TABLE
(
DomainId bigint,
SoldTickets bigint
)
DECLARE @FifteenMinDate datetime2
SELECT @FifteenMinDate = DATEADD(minute, -15, GETDATE())
INSERT INTO @LatestFifteenMinTickets(DomainId,SoldTickets)
SELECT DomainId, SoldTickets
FROM DomainDetailDataHistory
WHERE [Date] > @FifteenMinDate
Eu tentei alguns cenários, mas sinceramente não sei como continuar.
Como posso fazer isso?
EDITAR:
Digamos que, se eu receber de volta, vendi 0 ingressos hoje às 13:00. E nos próximos 15 minutos, recebo 15 inserções onde ingressos vendidos também são 0. a diferença aqui não é nada, pois 0-0 = 0 O que significa que vendi 0 ingressos nos últimos 15 minutos E vendi 0 ingressos durante todo o dia (até agora). Mas às 14:00 recebo informações do servidor de que 10 ingressos foram vendidos. Nos próximos 15 minutos, continuo recebendo ingressos vendidos = 10, o que significa que nos últimos 15 minutos vendi 0 ingressos, mas durante todo o dia vendi 10 ingressos -
Preciso verificar a coluna soldtickets para cada DomainId exclusivo e ver se há alguma diferença para o mais atual. Se houver, eu quero saber qual é a diferença em números
Basta agrupar sua tabela @LatestFifteenMinTickets por DomainId e calcular a diferença entre
MIN(SoldTickets)
eMAX(SoldTickets)
. Isso lhe dará o número de tickets vendidos para cada domínio dentro do período coletado em sua variável de tabela:A menos que SoldTickets possa diminuir e aumentar (os tickets podem ser devolvidos?), caso em que, em vez do mínimo e do máximo, você provavelmente deve pegar o primeiro e o último valor. Mas para poder fazer isso, você também deve ter o atributo Date em sua variável de tabela. Em seguida, o cálculo pode ser organizado usando as funções analíticas FIRST_VALUE e LAST_VALUE :