Página 2 de 3

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

Enviado: 10 Nov 2023 00:06
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.

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

Enviado: 10 Nov 2023 01:01
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...

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

Enviado: 10 Nov 2023 22:08
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.

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

Enviado: 10 Nov 2023 23:10
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.

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

Enviado: 10 Nov 2023 23:46
por alxsts

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

Enviado: 11 Nov 2023 00:42
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?

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

Enviado: 11 Nov 2023 16:10
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?

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

Enviado: 11 Nov 2023 19:36
por JoséQuintas
Talvez ajude se souber que essa tabela é cadastro e movimento ao mesmo tempo.

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

Enviado: 12 Nov 2023 00:48
por cjp
Sim, é isso.
Preciso apenas do primeiro.

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

Enviado: 13 Nov 2023 04:54
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...

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

Enviado: 13 Nov 2023 05:00
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)

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

Enviado: 16 Nov 2023 00:48
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.

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

Enviado: 16 Nov 2023 02:20
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

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

Enviado: 16 Nov 2023 12:52
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.

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

Enviado: 18 Nov 2023 00:33
por cjp
Entendi o View. Mas não me parece que ele sirva ao propósito que tenho. De qualquer forma, obrigado.