CONSULTA_SQL
Boa tarde!
Preciso fazer uma consulta em uma tabela, para saber quais clientes compraram, por exemplo, em janeiro e nao compraram em fevereiro ou março.
Não estou conseguindo
Alguma dica?
Vlw!
Preciso fazer uma consulta em uma tabela, para saber quais clientes compraram, por exemplo, em janeiro e nao compraram em fevereiro ou março.
Não estou conseguindo
Alguma dica?
Vlw!
posta a estrutura da tabela
Citação::
posta a estrutura da tabela
Por enquanto [Ô]ainda[Ô] somos programadores (e não conseguimos adivinhar as coisas), e por isso poste as informações necessárias para [Ô]tentarmos[Ô] ajudá-lo.
Não pude responder antes.
Trabalho com estéticas. Preciso saber quais clientes faturaram em janeiro e nao em fevereiro(exemplo).
A estrutura da tabela é simples:
tbAgendamento - IDAgenda
- IDCliente
- DataServico
- Concluido(s/n)
- Quitado(s/n)
Chamar os dados filtrando por data eu consigo. O que nao consigo é ver se aquele cliente também faturou em outro mês.
O q é + fácil?
1 - Utilizar subconsulta(nunca usei)?
2 - Ou chamar os dados(janeiro) num grid e a partir do grid procurar outros meses?
Espero ter sido claro.
Vlw!
Trabalho com estéticas. Preciso saber quais clientes faturaram em janeiro e nao em fevereiro(exemplo).
A estrutura da tabela é simples:
tbAgendamento - IDAgenda
- IDCliente
- DataServico
- Concluido(s/n)
- Quitado(s/n)
Chamar os dados filtrando por data eu consigo. O que nao consigo é ver se aquele cliente também faturou em outro mês.
O q é + fácil?
1 - Utilizar subconsulta(nunca usei)?
2 - Ou chamar os dados(janeiro) num grid e a partir do grid procurar outros meses?
Espero ter sido claro.
Vlw!
Citação:Trabalho com estéticas. Preciso saber [txt-color=#e80000]quais clientes faturaram em janeiro e nao em fevereiro[/txt-color](exemplo).
Vc precisa que a sua consulta verifique e retorne esta condição ou vc vai derivar visualmente, por exemplo, em um grid ou relatório?
Para o segundo caso, podemos fazer com um crosstab. Estou presumindo que vc esteja usando o Access. Vamos contar o número de serviços feitos no ano de 2011, agrupá-los por cliente e distribuir essa contagem pelos meses.
TRANSFORM Count(IDAgenda)
SELECT IDCliente FROM tbAgendamento GROUP BY IDCliente
WHERE Year(DataServico) = [ô]2011[ô] AND Concluido = True AND Quitado=True
GROUP BY IDCliente
PIVOT Format(DataServico, [ô]mmm[ô])
Não pude testar esse código pois estou sem Access aqui, pode apresentar algum problema.
Tomei como base essa página. http://msdn.microsoft.com/en-us/library/bb208956(v=office.12).aspx
Olá!
Através de pesquisa cheguei na seguinte consulta:
Set rsClienteConsulta = New ADODB.Recordset
ssql = [Ô]SELECT * FROM tbCliente [Ô] & _
[Ô]WHERE IDCli IN [Ô] & _
[Ô](SELECT IDCliente [Ô] & _
[Ô]FROM tbAgendamento [Ô] & _
[Ô]WHERE DataServico BETWEEN #[Ô] & dtPicker & [Ô]# And #[Ô] & ultdiames/mm/yyyy & [Ô]#) [Ô] & _
[Ô] ORDER BY Nome ASC [Ô]
With rsClienteConsulta
.Open ssql, Banco, adOpenKeyset, adLockReadOnly
gridClientesInativos.Rows = 1
For i = 1 To .RecordCount
gridClientesInativos.AddItem !IDCli & vbTab & !Nome
.MoveNext
Next
.Close
End With
gridClientesInativos.AddItem vbTab & gridClientesInativos.Rows - 1
Aparentemente deu certo! Mas, testando mais detalhadamente, constatei que tem erro, pq quando carrego da metade do ate o fim, ele mostra a quantidade certa clientes que possuiam serviços agendados, mas quando estendo para o inicio do mes, mostra 10 X mais. Talvez seja um problema de formatação de data, etc...
é isso por enquanto.
Vlw!
Através de pesquisa cheguei na seguinte consulta:
Set rsClienteConsulta = New ADODB.Recordset
ssql = [Ô]SELECT * FROM tbCliente [Ô] & _
[Ô]WHERE IDCli IN [Ô] & _
[Ô](SELECT IDCliente [Ô] & _
[Ô]FROM tbAgendamento [Ô] & _
[Ô]WHERE DataServico BETWEEN #[Ô] & dtPicker & [Ô]# And #[Ô] & ultdiames/mm/yyyy & [Ô]#) [Ô] & _
[Ô] ORDER BY Nome ASC [Ô]
With rsClienteConsulta
.Open ssql, Banco, adOpenKeyset, adLockReadOnly
gridClientesInativos.Rows = 1
For i = 1 To .RecordCount
gridClientesInativos.AddItem !IDCli & vbTab & !Nome
.MoveNext
Next
.Close
End With
gridClientesInativos.AddItem vbTab & gridClientesInativos.Rows - 1
Aparentemente deu certo! Mas, testando mais detalhadamente, constatei que tem erro, pq quando carrego da metade do ate o fim, ele mostra a quantidade certa clientes que possuiam serviços agendados, mas quando estendo para o inicio do mes, mostra 10 X mais. Talvez seja um problema de formatação de data, etc...
é isso por enquanto.
Vlw!
Agradeço a todos pela colaboração!
Acabei resolvendo por conta.
Vlw!
Acabei resolvendo por conta.
Vlw!
Tópico encerrado , respostas não são mais permitidas