Migração do MySQL pro SQL Server - dúvida

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Migração do MySQL pro SQL Server - dúvida

Mensagem por cjp »

Testei com IN, mas acho que ainda não estou sabendo como fazer isso.

Veja este exemplo:

Código: Selecionar todos

SELECT nrtarefa,assunto,tarefa,id FROM tarefas WHERE nrtarefa IN (select DISTINCT nrtarefa nrtarefa from tarefas WHERE prioridade>0 AND soluc='N' AND (exibe='N' OR exibe='I') AND (getdate())>=hrexibe AND vinculo<>'MP' AND data>='2023-11-01')
Usando apenas o segundo select (select DISTINCT nrtarefa nrtarefa from tarefas WHERE prioridade>0 AND soluc='N' AND (exibe='N' OR exibe='I') AND (getdate())>=hrexibe AND vinculo<>'MP' AND data>='2023-11-01'), eu consigo apenas os registros que eu quero.

Mas a questão é pegar os demais campos, com apenas os registros deste segundo select. Quando acresço o primeiro select, vai pegar todos os registros cujo nrtarefa esteja no segundo, e daí pega todos os registros que tem os nrtarefa, com repetições.

Testei colocar id no segundo select, mas daí o distinct não funciona.

Tentei com inner join, mas também não deu certo.

A questão da data eu resolvi "na unha", fiz uma função para converter.

Não é o caso de mudar ODBC, já está tudo funcionando quase perfeitamente. Estou apenas aparando as arestas. Tem apenas alguns detalhes que ainda não terminei de resolver. Este é um deles.
Inacio de Carvalho Neto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Migração do MySQL pro SQL Server - dúvida

Mensagem por alxsts »

Ola!

Se você postar o script de criação da tua tabela (só precisa dos campos envolvidos) e outro script inserindo alguns registros nesta tabela, será mais fácil ajudar. Ficar neste "ping-pong" fica difícil...
[]´s
Alexandre Santos (AlxSts)
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Migração do MySQL pro SQL Server - dúvida

Mensagem por cjp »

Segue o código create da tabela, extraído do HeidiSQL:

Código: Selecionar todos

CREATE TABLE "tarefas" (
	"USUARIO" CHAR(2) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"NRTAREFA" CHAR(7) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"HREXIBE" DATETIME NULL DEFAULT 'NULL',
	"DTMAXIMA" DATE NULL DEFAULT 'NULL',
	"PRIORIDADE" INT NULL DEFAULT 'NULL',
	"INCLUIDOR" VARCHAR(15) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"SOLUC" CHAR(1) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"EXIBE" CHAR(1) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"VINCULO" VARCHAR(20) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"TEMPOESTIM" DECIMAL(7,1) NULL DEFAULT 'NULL',
	"TEMPOUSADO" DECIMAL(7,1) NULL DEFAULT 'NULL',
	"marca" CHAR(1) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"TEMPOCOMPU" DECIMAL(7,1) NULL DEFAULT 'NULL',
	"tempopago" DECIMAL(7,1) NULL DEFAULT 'NULL',
	"CAMPO" CHAR(1) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"ASSUNTO" VARCHAR(45) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"DATA" DATE NULL DEFAULT 'NULL',
	"HORA" CHAR(8) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"TAREFA" VARCHAR(60) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"ATIND" CHAR(1) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"DTCARGA" DATE NULL DEFAULT 'NULL',
	"DTPREFER" DATE NULL DEFAULT 'NULL',
	"tpprocesso" CHAR(1) NULL DEFAULT 'NULL' COLLATE 'Latin1_General_CI_AS',
	"modelo" INT NULL DEFAULT 'NULL',
	"id" INT NOT NULL,
	PRIMARY KEY ("id")
)
;
Não entendi bem a segunda parte. Quer que eu faça um insert de registros na tabela? O problema é com select.
Inacio de Carvalho Neto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Migração do MySQL pro SQL Server - dúvida

Mensagem por alxsts »

Ola!
cjp escreveu:Quer que eu faça um insert de registros na tabela? O problema é com select.
Com este script de criação, podemos criar a tabela. Ok. Para testarmos o teu SELECT, precisamos de dados. Por isto o pedido para fazer INSERTs na tabela. Se tivessemos uns 20 ou 30 registros seria ótimo. Entendeu?

Talvez consiga exportar alguns registros usando o SQL Server Management Studio. Se está usando este SGBDR deve ter acesso a ele.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Migração do MySQL pro SQL Server - dúvida

Mensagem por alxsts »

[]´s
Alexandre Santos (AlxSts)
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Migração do MySQL pro SQL Server - dúvida

Mensagem por cjp »

Código: Selecionar todos

INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', '2023-11-22', 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, 0, ' ', 0, 0, ' ', '2881-71.2023', '2023-10-23', '12:19:35', ' 23/10/23', ' ', '2023-10-23', '2100-01-01', 'N', 0, 315487);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', '2023-11-22', 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, 0, ' ', 0, 0, ' ', '2881-71.2023', '2023-10-23', '12:19:35', 'Vara de Registros Públicos do Projudi, não urgente, carga em', ' ', '2023-10-23', '2100-01-01', 'N', 0, 315488);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', '2023-11-22', 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, 0, ' ', 0, 0, ' ', '2881-71.2023', '2023-10-23', '12:19:34', 'Instrução: Faça o parecer nesta ação número 2881-71.2023 d a', ' ', '2023-10-23', '2100-01-01', 'N', 0, 315489);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-08', '17:56:11', '   ', ' ', '2023-10-23', '2100-01-01', NULL, 0, 726269);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, 15, NULL, 1, 0, ' ', '2881-71.2023', '2023-11-08', '17:56:13', 'Resposta de Mirian_Silva:', ' ', '2023-10-23', '2100-01-01', NULL, 0, 726270);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-08', '17:56:17', 'Atividade não terminada em razão de término de expediente ou', ' ', '2023-10-23', '2100-01-01', NULL, 0, 726271);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-08', '17:56:19', ' de pausa para almoço', ' ', '2023-10-23', '2100-01-01', NULL, 0, 726273);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-08', '17:56:21', '    ', ' ', '2023-10-23', '2100-01-01', NULL, 0, 726274);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-08', '17:56:23', 'Resposta de Inacio (resposta automática):', ' ', '2023-10-23', '2100-01-01', NULL, 0, 726276);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-08', '17:56:25', 'Prossiga, por favor', ' ', '2023-10-23', '2100-01-01', NULL, 0, 726277);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-09', '17:50:49', '   ', ' ', '2023-10-23', '2100-01-01', NULL, 0, 814861);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, 25, NULL, 1, 0, ' ', '2881-71.2023', '2023-11-09', '17:50:51', 'Resposta de Mirian_Silva:', ' ', '2023-10-23', '2100-01-01', NULL, 0, 814863);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-09', '17:50:55', 'Não consegui terminar a atividade no tempo porque Analisar d', ' ', '2023-10-23', '2100-01-01', NULL, 0, 814864);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-09', '17:50:57', 'ocumentos                                                   ', ' ', '2023-10-23', '2100-01-01', NULL, 0, 814865);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-09', '17:50:59', '    ', ' ', '2023-10-23', '2100-01-01', NULL, 0, 814866);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-09', '17:51:01', 'Resposta de Inacio (resposta automática):', ' ', '2023-10-23', '2100-01-01', NULL, 0, 814867);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-09', '17:51:03', 'Prossiga, por favor', ' ', '2023-10-23', '2100-01-01', NULL, 0, 814868);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '16:15:08', '   ', ' ', '2023-10-23', '2100-01-01', NULL, 0, 816386);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, 25, NULL, 6, 0, ' ', '2881-71.2023', '2023-11-10', '16:15:10', 'Resposta de Mirian_Silva:', ' ', '2023-10-23', '2100-01-01', NULL, 0, 816387);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '16:15:14', 'Parecer terminado, segue para correção, usando o modelo 12', ' ', '2023-10-23', '2100-01-01', NULL, 0, 816388);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '17:02:09', '   ', ' ', '2023-10-23', '2100-01-01', NULL, NULL, 816451);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, 7.5, NULL, 0, 0, ' ', '2881-71.2023', '2023-11-10', '17:02:11', 'Resposta de Carol_Ogeda:', ' ', '2023-10-23', '2100-01-01', NULL, NULL, 816452);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '17:02:15', 'Não foi usado o modelo correto neste caso. Me responda no mo', ' ', '2023-10-23', '2100-01-01', NULL, NULL, 816453);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '17:02:17', 'delo normal, por favor. Pode pedir a intimação do registrado', ' ', '2023-10-23', '2100-01-01', NULL, NULL, 816454);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5029  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '17:02:19', 'r para se manifestar quanto à impugnação também, por favor  ', ' ', '2023-10-23', '2100-01-01', NULL, NULL, 816455);
Algo assim?
Inacio de Carvalho Neto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Migração do MySQL pro SQL Server - dúvida

Mensagem por alxsts »

Olá!

Sim, isto deve ajudar. Procure fazer isto em dúvidas futuras.

Agora preciso entender o que você realmente precisa.

Tem várias linhas com o mesmo nrtarefa. Você quer pegar apenas um de cada grupo? Se sim, qual deles? Qualquer um? O mais antigo? O mais recente? Ou não é isto que precisa?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Migração do MySQL pro SQL Server - dúvida

Mensagem por JoséQuintas »

Talvez ajude se souber que essa tabela é cadastro e movimento ao mesmo tempo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Migração do MySQL pro SQL Server - dúvida

Mensagem por cjp »

Sim, é isso.
Preciso apenas do primeiro.
Inacio de Carvalho Neto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Migração do MySQL pro SQL Server - dúvida

Mensagem por alxsts »

Olá!

1 - Este script de criação da tabela não funciona no SQL Server...

Código: Selecionar todos

CREATE TABLE "tarefas" (
   "USUARIO" CHAR(2) NULL DEFAULT 'NULL' ,
   "NRTAREFA" CHAR(7) NULL DEFAULT 'NULL' ,
   "HREXIBE" DATETIME NULL DEFAULT 'NULL',
   "DTMAXIMA" DATE NULL DEFAULT 'NULL',
   "PRIORIDADE" INT NULL DEFAULT 'NULL',
   "INCLUIDOR" VARCHAR(15) NULL DEFAULT 'NULL' ,
   "SOLUC" CHAR(1) NULL DEFAULT 'NULL' ,
   "EXIBE" CHAR(1) NULL DEFAULT 'NULL' ,
   "VINCULO" VARCHAR(20) NULL DEFAULT 'NULL' ,
   "TEMPOESTIM" DECIMAL(7,1) NULL DEFAULT 'NULL',
   "TEMPOUSADO" DECIMAL(7,1) NULL DEFAULT 'NULL',
   "marca" CHAR(1) NULL DEFAULT 'NULL' ,
   "TEMPOCOMPU" DECIMAL(7,1) NULL DEFAULT 'NULL',
   "tempopago" DECIMAL(7,1) NULL DEFAULT 'NULL',
   "CAMPO" CHAR(1) NULL DEFAULT 'NULL' ,
   "ASSUNTO" VARCHAR(45) NULL DEFAULT 'NULL' ,
   "DATA" DATE NULL DEFAULT 'NULL',
   "HORA" CHAR(8) NULL DEFAULT 'NULL' ,
   "TAREFA" VARCHAR(60) NULL DEFAULT 'NULL' ,
   "ATIND" CHAR(1) NULL DEFAULT 'NULL' ,
   "DTCARGA" DATE NULL DEFAULT 'NULL',
   "DTPREFER" DATE NULL DEFAULT 'NULL',
   "tpprocesso" CHAR(1) NULL DEFAULT 'NULL' ,
   "modelo" INT NULL DEFAULT 'NULL',
   "id" INT NOT NULL,
   PRIMARY KEY ("id")
)
;
dá erro:

Código: Selecionar todos

Mensagem 102, Nível 15, Estado 1, Linha 44
Sintaxe incorreta próxima a 'Latin1_General_CI_AS'.
Provavelmente você não criou tua tabela no SQL Server com este script... esta sintaxe é do MySQL...
Provavelmente você não sabe que "Latin1_General_CI_AS" significa "Conjunto de caracteres Geral Latino - Insensível ao caso e sensível a acentos". Isto afeta diretamente ordenações e comparações entre dados de colunas tipo char, varchar. Ou seja com CI, A = a e com AI, Á (com acento) é igual a A (sem acento). Provavelmente os teus bancos de dados MySQL estão com esta configuração (e problema), pois esta sintaxe é do MySQL.

Para efeito de testes, resolvi criando a tabela da seguinte forma:

Código: Selecionar todos

USE [mytest]
GO

/****** Object:  Table [dbo].[tarefas]    Script Date: 13/11/2023 02:09:31 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[tarefas](
	[USUARIO] [char](2) NULL,
	[NRTAREFA] [char](7) NULL,
	[HREXIBE] [datetime] NULL,
	[DTMAXIMA] [date] NULL,
	[PRIORIDADE] [int] NULL,
	[INCLUIDOR] [varchar](15) NULL,
	[SOLUC] [char](1) NULL,
	[EXIBE] [char](1) NULL,
	[VINCULO] [varchar](20) NULL,
	[TEMPOESTIM] [decimal](7, 1) NULL,
	[TEMPOUSADO] [decimal](7, 1) NULL,
	[marca] [char](1) NULL,
	[TEMPOCOMPU] [decimal](7, 1) NULL,
	[tempopago] [decimal](7, 1) NULL,
	[CAMPO] [char](1) NULL,
	[ASSUNTO] [varchar](45) NULL,
	[DATA] [date] NULL,
	[HORA] [char](8) NULL,
	[TAREFA] [varchar](60) NULL,
	[ATIND] [char](1) NULL,
	[DTCARGA] [date] NULL,
	[DTPREFER] [date] NULL,
	[tpprocesso] [char](1) NULL,
	[modelo] [int] NULL,
	[id] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [USUARIO]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [NRTAREFA]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [HREXIBE]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [DTMAXIMA]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [PRIORIDADE]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [INCLUIDOR]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [SOLUC]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [EXIBE]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [VINCULO]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [TEMPOESTIM]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [TEMPOUSADO]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [marca]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [TEMPOCOMPU]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [tempopago]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [CAMPO]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [ASSUNTO]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [DATA]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [HORA]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [TAREFA]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [ATIND]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [DTCARGA]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [DTPREFER]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [tpprocesso]
GO

ALTER TABLE [dbo].[tarefas] ADD  DEFAULT ('NULL') FOR [modelo]
GO

2 - Inseri os dados que você postou.
Percebi então que os dados postados não servem para o teste...
Não sei se é falta de cuidado, experiência, outra coisa... sei lá...
Se vai criar uma massa de dados para testes, estes dados precisam abranger todas as situações a serem testadas...

Código: Selecionar todos

WHERE  prioridade > 0         ==> deveria ter alguns registros com prioridade zero e outros com maior que zero...
        AND soluc = 'N'             ==> deveria ter alguns com valor diferente de 'N'. Todos estão com 'N'
        AND ( exibe = 'N'           ==> Estão todos com 'E' e as condição é (exibe='N' OR exibe='I')
               OR exibe = 'I' )
        AND Getdate() >= hrexibe
        AND vinculo = 'MP'          ==> Estão todos com 'MP'. Deveria ter alguns diferentes...
        AND data >= '2023-11-01'
Resolvi inserindo algumas linhas com valores diferentes:

Código: Selecionar todos

INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5030  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '17:02:15', 'Não foi usado o modelo correto neste caso. Me responda no mo', ' ', '2023-10-23', '2100-01-01', NULL, NULL, 816456);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5030  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '17:02:17', 'delo normal, por favor. Pode pedir a intimação do registrado', ' ', '2023-10-23', '2100-01-01', NULL, NULL, 816457);
INSERT INTO "tarefas" ("USUARIO", "NRTAREFA", "HREXIBE", "DTMAXIMA", "PRIORIDADE", "INCLUIDOR", "SOLUC", "EXIBE", "VINCULO", "TEMPOESTIM", "TEMPOUSADO", "marca", "TEMPOCOMPU", "tempopago", "CAMPO", "ASSUNTO", "DATA", "HORA", "TAREFA", "ATIND", "DTCARGA", "DTPREFER", "tpprocesso", "modelo", "id") VALUES ('F ', 'F5030  ', '2023-11-11 10:00:00.000', NULL, 5, 'Damarys_Alencar', 'N', 'E', 'MP', 20, NULL, NULL, NULL, NULL, ' ', '2881-71.2023', '2023-11-10', '17:02:19', 'r para se manifestar quanto à impugnação também, por favor  ', ' ', '2023-10-23', '2100-01-01', NULL, NULL, 816458);
3 - Montei um select... executei e retornou corretamente...
Resultado Consulta
Resultado Consulta
Neste ponto, percebi que a consulta que montei é praticamente igual àquela postada pelo Quintas, acima, em 06 Nov 2023 12:28:
JoséQuintas escreveu:Sei lá...
Já falei pra organizar as bases de dados há anos.
tenta virtualmente

Código: Selecionar todos

1	select campos
2	from
3	where id in
4	( select nrtarefa, max(id) from .. group by nrtarefa )
5	and
6
 


Vai pegar a id da informação mais recente, e aplicar filtro nisso.
ou cria view já que vai usar muito.

Sei lá se isso vai ser eficiente.
Saiba que está sobrecarregando cada vez mais o servidor.
A diferença é que a dele pega o mais recente (MAX(id)) e você quer a mais antiga (MIN(id)).

Sei lá também. Pelo jeito nem leu o post...

Bom... veja se serve...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Migração do MySQL pro SQL Server - dúvida

Mensagem por alxsts »

Olá!

Faltou postar o código da consulta:

Código: Selecionar todos

SELECT nrtarefa,
       assunto,
       tarefa,
       id
FROM tarefas
WHERE id in (SELECT MIN(id) 
               FROM tarefas
              WHERE  prioridade > 0
                AND soluc = 'N'
                AND ( exibe = 'E'  -->>> Aqui forcei ser igual a 'E'
                       OR exibe = 'I' )
                AND Getdate() >= hrexibe
                AND vinculo = 'MP'
                AND data >= '2023-11-01'
              GROUP BY nrtarefa)
[]´s
Alexandre Santos (AlxSts)
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Migração do MySQL pro SQL Server - dúvida

Mensagem por cjp »

Peço desculpas pela demora.
Teu exemplo funcionou, exatamente como eu pretendia.
Muito obrigado.
Na verdade eu tinha lido sim o post do Quintas. Eu sempre leio tudo que me ensinam. Nem sempre entendo, mas sempre leio. Já tinha testado a sugestão dele, mas não estava dando certo. Mas agora funcionou.
Agradeço a todos que ajudaram.
Aproveito para agradecer publicamente ao Quintas pela sugestão de migração para o SQL Server. Resolveu meu problema de forma relativamente simples (na verdade deu um trabalhinho e tanto, mas, em vista do tamanho do problema que eu tinha, sem dúvida valeu a pena), sem grandes custos e de forma que eu conseguisse resolver. Foi uma sugestão de grande valia. Muito obrigado.
Inacio de Carvalho Neto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Migração do MySQL pro SQL Server - dúvida

Mensagem por alxsts »

Olá!
cjp escreveu:Teu exemplo funcionou, exatamente como eu pretendia.

Ótimo!
cjp escreveu:Desculpe, mas não entendi. O que seria criar view?
DIFERENÇA DE TABELAS E VIEWS NO SQL – DIFERENÇAS E VANTAGENS
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Migração do MySQL pro SQL Server - dúvida

Mensagem por JoséQuintas »

cjp escreveu:Aproveito para agradecer publicamente ao Quintas pela sugestão de migração para o SQL Server. Resolveu meu problema de forma relativamente simples (na verdade deu um trabalhinho e tanto, mas, em vista do tamanho do problema que eu tinha, sem dúvida valeu a pena), sem grandes custos e de forma que eu conseguisse resolver. Foi uma sugestão de grande valia. Muito obrigado.
Isso é praquele caso dele não poder instalar nada nas máquinas.
Na verdade foram várias sugestões, incluindo SQLMIX, HBMYSQL, RDDSQL, etc. mas ele disse que nenhuma deu certo.
SQL Server foi só mais uma sugestão, porque pra SQL Server vém sempre já instalado no Windows, pensando na possibilidade da versão EXPRESS gratuíta.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Migração do MySQL pro SQL Server - dúvida

Mensagem por cjp »

Entendi o View. Mas não me parece que ele sirva ao propósito que tenho. De qualquer forma, obrigado.
Inacio de Carvalho Neto
Responder