none
Consulta de um único registro mas com datas diferentes RRS feed

  • Pergunta

  • Pessoal,

    Bom dia!

    Estou tentando elaborar uma consulta de uma única tabela no SQL SERVER 2008 R2, que me retorne um único registro para uma determinada data e horário. Essa é uma aplicação industrial que grava os dados por assim dizer, a todo segundo. Estou montando uma aplicação em VB.NET em que preciso consultar os dados gravados no SQL atendendo o seguinte critério:

    Minha consulta terá sempre o mesmo critério: Data selecionada pelo usuário e o horário será às 17:00:00.000. Nessa mesma consulta preciso que um único campo também me retorne o valor de ontem. Por exemplo: preciso que o campo FQI5135009_VLB_ANT me retorne o registro do dia 16 e 17 e os demais campos somente do dia 17.

    Espero ter sido claro ao relatar o meu problema. Já procurei em diversos lugares e não sei como resolver o meu problema. Sou novo no Fórum e gostaria da ajuda dos colegas. No SQL SERVER 2008 R2 digitando conforme abaixo aparece o que preciso, só que são duas consultas diferentes que não aceita no VB.NET quando estou desenvolvendo, uma fica de fora ou senão dá erro.

    SET NOCOUNT ON

    DECLARE @StartDate DateTime

    DECLARE @EndDate DateTime

    SET @StartDate = '20150316 17:00:00'

    SET @EndDate = '20150317 17:00:00'

    SET NOCOUNT OFF

    SELECT  * FROM (

    SELECT Runtime.dbo.History.TagName, DateTime, Value, vValue, StartDateTime

     FROM Runtime.dbo.History

     WHERE Runtime.dbo.History.TagName IN ('FQI5135009_VLB_ANT')

     AND wwRetrievalMode = 'Delta'

     AND wwVersion = 'Latest'

     AND DateTime = @StartDate) temp

     

    SELECT * FROM (

    SELECT Runtime.dbo.History.TagName, DateTime, Value, vValue, StartDateTime

     FROM Runtime.dbo.History

     WHERE Runtime.dbo.History.TagName IN ('FQI5135009_VLB_ANT', 'FQI5135009_VLB_DIA', 'FQI5135009_VLC_ANT','FQI5135009_VLC_DIA', 'FQI5135009_VZB', 'FQI5135009_VZBC')

     AND wwRetrievalMode = 'Delta'

     AND wwVersion = 'Latest'

     AND DateTime = @EndDate) temp

    Consigo montar uma única consulta para retornar os registros conforme abaixo? 

    Gostaria agradecer a prontidão/atenção dos colegas em fornecer ajuda.

    O Resultado da consulta desejável seria assim:

    FQI5135009_VLB_ANT     2015-03-16 17:00:00.0000000     55426.2717014          
    
    FQI5135009_VLB_ANT     2015-03-17 17:00:00.0000000     66881.3828125          
    
    FQI5135009_VLB_DIA     2015-03-17 17:00:00.0000000     85167.8125             
    
    FQI5135009_VLC_ANT     2015-03-17 17:00:00.0000000     535051.0625            
    
    FQI5135009_VLC_DIA     2015-03-17 17:00:00.0000000     681342.5               
    
    FQI5135009_VZB         2015-03-17 17:00:00.0000000     176.530456542969       
    
    FQI5135009_VZBC        2015-03-17 17:00:00.0000000     1412.24365234375       

    segunda-feira, 23 de março de 2015 12:44

Respostas

Todas as Respostas