Sei que o mair problema em uma migracao para um banco de dados SQL e com toda a certeza o dominio desse dialeto, pois esta muto distante do que aprendemos no dia a dia de manipulacao de dados em Xbase, a ideia que me veio a cabeca esse final de semana seria uma ajuda para de forma Visual criar as instrucoes em SQL para serem usadas em nossos sistemas, aprendendo esse dialeto como contra partida.
Bem estou postando aqui porque atualmente estou em fase de aprendizado, tenho alguns sistemas desenvolvidos em access (Postos de Combustiveis, Farmacia, Supermercado e etc), so que preciso padronizar o desenvolvimento juntamente com meu irmao (Jef2_timber), ele sim um expert em Fivewin x Xharbour e usuario assidudo desse forum e do forum Five WIn BRasil, lendo, relendo e relembrando (Ja desenvolvi em clipper a muito tempo atraz), senti que apesar de terem as ferramentas para acessarem dados em servidores Mydql, um dos grandes problemas seria realmente utilizar a linguagem SQL para fazer esse acesso, com a experiencia que tenho atualmente em Access gostaria de dar algumas dicas, que se for de utilidade ficaria feliz, se nao ficaria feliz do mesmo jeito pois Lincoln (eu) tentei ser util
Vamos dar o exemplo de um caso simples, desenvolvi um relatorio em meu sistema para ajudar no controle de pacientes odontologicos do consultorio da minha Dignissima, tenho uma tabela em Mysql chamada Agendamento onde periodicamente lanco os dados refernte a agendamentos realizados pelos clientes da mesma, nessa tabela estao armazenados:
paciente -> Codigo do Paciente Processado/Agendado?Reagendado
Tipo -> Tipo de Procedimento, Manutencao Ortodontica, Clinica ou Reagendamento
DataProcedimento -> Data do Procedimento
DataReagendamento -> Data do Reagendamento se para proximo Procedimento
Posicao -> Posicao do procedimento, Pagou ou nao pagou
Historico -> Historico do Procedimento
Bem fora essa tabela tambem tenho a tabela de cadastro de pacientes, onde tenho os dados relativos a esse paciente bem como um codigo univoco para relacionar com a minha tabela agendamentos, precisei de um relatorio para a seguinte situacao, verificar quais os pacientes nao estao agendados, ou se estao qual o ultimo agendamento realizado para o mesmo, ate porque paciente fora do consultorio e prejuizo na certa, antes que comecem a me xingar vou dar o exemplo em Access:

Bem explicando essa consulta, uma consulta visual onde relacionei o codigo do cliente ao codigo do paciente na tabela agendamento com os campos Paciente, Cliente (nome do cliente), Fone (Teledone do cliente) e utilizei a opcao agrupar com os parametros menor que data() (todos as datas menor que a data atual do sistema) ou Is Null (Campo nulo) na opcao total do campo DataReagendamento utilizei a funcao Max (Pega o maior valor do campo), com isso me retornara os dados dos pacientes agendados com o ultimo dia em que foi reagendado/agendado podendo cobrar isso da secretaria da dignissima e consequente ganhar mais dim dim
O Resultado disso e a seguinte tela:

Note que a consulta me retornou todos os pacientes agendados com a data do ultimo reagendamento sendo esse menor que a data do sistema.
Ok Ok, voces deve estar me perguntando o que voces tem haver com isso, vamos la, notem na imagem que temos uma opcao em Access para exibir essa contulta em SQL, pode ser acessada e no menu EXIBIR depois , MODO SQL como mostrado na figura abaixo:

Bem o resultado disso sera a instrucao em sql como se segue abaixo:

SELECT agendamentos.Paciente, [clientes fisico].CLIENTE, [clientes fisico].FONE, Max(agendamentos.DataReagendamento) AS DataReagendamento
FROM [clientes fisico] INNER JOIN agendamentos ON [clientes fisico].CODIGO = agendamentos.Paciente
GROUP BY agendamentos.Paciente, [clientes fisico].CLIENTE, [clientes fisico].FONE
HAVING (((Max(agendamentos.DataReagendamento))<Date() Or (Max(agendamentos.DataReagendamento)) Is Null))
ORDER BY [clientes fisico].CLIENTE;
Pronto tudo que voce precisa esta bem ai em cima, so copiar e colocar, lembrando que posso usar como parametros minhas variaveis, meus campos e etc, facilitando em muito a vida de quem ainda nao domina as regras e sintaxes de SQL, entao voce gera suas consultas de modo VISUAL sem a nacessidade de saber NADA de SQL.
Vale lembrar que o Access acessa via ODBC tabelas em todos os bancos de dados hoje em dia, DBF, MYSQL, Oracle, DBA e etc, voce pode utilizar a mesma ideia com seu construtor visual de Relatorio.
Bem o intuido foi somente ajudar se alguem gostou da dica posta ai
Abracos
Lincoln Wallace Procopio


