SELECT INATIVOS

ROGERIOAZEVEDO 27/06/2014 09:42:27
#439230
Bom dia!

Prezados colegas,

Preciso fazer um select e ainda não encontrei a melhor forma de executá-lo. Tenho uma tabela conforme a apresentada abaixo.

id_Cliente Nome Evento Data
1111 Jose R401 27/06/2014 00:04
1112 Joaquim R401 27/06/2014 00:04
1113 Maria R401 27/06/2014 00:04
1114 João R401 01/03/2014 00:04
1115 Mario R401 23/02/2014 00:04
1116 Paulo R401 01/06/2011 00:04

O que preciso é de um select que me mostre quem são os clientes que não tiveram evento R401 nos últimos 10 dias, pois isso significa que os mesmos estão inativos. No exemplo da tabela acima, os últimos três seriam mostrados.

Desde já agradeço.
NAUTILUZ 27/06/2014 16:43:05
#439246
Não testei mas da uma procurada no google, tem bastante sql..

SELECT * FROM tabela WHERE NOT (Evento = [ô]R401[ô]) BETWEEN DATA ([ô]2003/01/01[ô], [ô]yyyy/mm/dd[ô])
AND DATA ([ô]2003/12/31[ô], [ô]yyyy/mm/dd[ô]);
FILMAN 27/06/2014 23:16:50
#439252
Resposta escolhida
SELECT * FROM TABELA WHERE EVENTO = [ô]R401[ô] AND CAST(DATA AS DATE) >= [ô]2014-06-18[ô]
A ideia é essa!


No VB.NET ara subtrair os 10 dias faça o seguinte!

Exemplo
Dim DataAtual As Date = Date.Now
Dim DataAux As Date

DataAux = DataAtual.AddDays(-10)

MessageBox.Show(DataAux.ToString([Ô]dd/MM/yyyy[Ô]))
ROGERIOAZEVEDO 30/06/2014 18:47:12
#439272
Boa noite!

Consegui da seguinte forma...

 
SELECT DISTINCT CEN.ID_CENTRAL AS Conta, CEN.RAZAO, H1.CD_EVENTO AS Evento,
CAST(H1.DT_RECEBIDO AS SMALLDATETIME) AS Data
FROM HISTORICO_ARME AS H1
INNER JOIN (SELECT CD_CLIENTE, MAX(CD_HISTORICO_ARME) AS COD
FROM HISTORICO_ARME
GROUP BY CD_CLIENTE) AS H2 ON H1.CD_HISTORICO_ARME = COD
INNER JOIN dbCENTRAL AS CEN ON CEN.CD_CLIENTE = H1.CD_CLIENTE
WHERE CEN.FG_ATIVO = [ô]1[ô]
AND H1.DT_RECEBIDO < GETDATE() -10
ORDER BY CAST(H1.DT_RECEBIDO AS SMALLDATETIME) DESC


Fiz algumas pesquisas e vi que talvez a melhor opção seria pegar o ID da linha caso a tabela tenha auto incremento, e essa tem, assim usei um distinct com max nessa coluna e depois juntei com um JOIN.

Obrigado a todos que colaboraram, colo acima o código para ajudar os demais colegas em uma necessidade semelhante.
ROGERIOAZEVEDO 01/07/2014 14:56:01
#439296
Boa tarde.

Conforme postei acima, consegui fazer a querry agora falta jogar o -10 em um combobox no C#

AND H1.DT_RECEBIDO < GETDATE() -10

Quero ter um combobox onde o usuário pode escolher -5, -10 ou -15 por exemplo.
ROGERIOAZEVEDO 07/07/2014 12:20:10
#439380
Bom dia.

Alguem pode me ajudar com essa situação? Tenho esse pedaço da QUERRY abaixo:


AND H1.DT_RECEBIDO < GETDATE() -10


Quero ter no C# Forms as opções em um combobox onde o usuário pode escolher -5, -10 ou -15 por exemplo.

Eu pensei em simplesmente trocar o -10 por um paramentro dentro do SQL tipo GETDATE() @data, mas quando o usuário escolher a opção o C# vai trocar o @data por [ô]-10[ô] exemplo, e as aspas farão com que o select retorne erro.


ROGERIOAZEVEDO 09/07/2014 09:28:10
#439426
Alguem?
FILMAN 10/07/2014 22:52:02
#439455
string vSQL = [Ô]SELECT * FROM TABELA WHERE CEN.FG_ATIVO = [ô]1[ô] AND H1.DT_RECEBIDO < (GETDATE() @DATA)[Ô];

vSQL = vSQL.Replace([Ô]@DATA[Ô], ComboBox.SelectedValue);

Mas você pode trabalhar com parametros na hora de fazer a instrução SQL. Pesquise por select com parametros SQL Server
RO.DRIGOSG 11/07/2014 08:38:15
#439457
Bom dia Rogério,

Para trazer a data em menos 10 dias utilize o Between com DateAdd, veja o exemplo abaixo:

SELECT * FROM TABELA AS H1 WHERE H1.DT_RECEBIDO BETWEEN DATEADD(DAY,-10, GETDATE()) AND GETDATE()


Agora no C#, é só trocar o [Ô]-10[Ô] pelo valor da ComboBox

ROGERIOAZEVEDO 11/07/2014 10:23:07
#439459
Ola Rodrigo e Filman,

O problema é que quando substituo o @data no C# ele troca @data por [ô]-10[ô] e essas aspas vão dar erro no select.

Abraços.
ROGERIOAZEVEDO 11/07/2014 10:52:47
#439461
Rodrigo,

Quando eu troco...
=>
AND H1.DT_RECEBIDO < GETDATE() -10


Por
=>
AND H1.DT_RECEBIDO BETWEEN DATEADD(DAY,-10, GETDATE()) AND GETDATE()


A querry fica rodando infinitamente e não conclui nunca. O detalhe é que essa tabela recebe eventos constantemente.
Página 1 de 2 [20 registro(s)]
Tópico encerrado , respostas não são mais permitidas