¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Inserção de valores com consulta SQL para inserir linhas com Customer_ID correspondente

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Tenho coçado a cabeça (e algumas outras partes) por um tempo, talvez ainda atordoado pela mudança de horário 😊

Preciso inserir valores onde um dos campos é um número de identificação selecionado de outra tabela, algo assim

(SELECT Customer_ID FROM Customers WHERE Cust_Name LIKE '%Unique String%') AS Cust_ID

INSERT INTO A_Sales_Ledger(xxx, yyyy, Customer_ID) VALUES (yyyy, yyyy, Cust_ID)

Assim, a consulta retornará, digamos, 65 registros e 65 novas linhas serão inseridas em A_Sales_Ledger com o Customer_ID correspondente

Obrigado

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Paul

O código que você forneceu inicialmente estava perfeito - eu o marquei como a solução.

Foi uma situação única que exigiu uma correção rápida (Sybase Central) em vez de desenvolver uma interface de cliente.

Obrigado por dedicar seu tempo para ajudar. ?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Dave,

Não, você não precisa de VALORES se usar a sintaxe INSERT...SELECT.. pois os valores de inserção são fornecidos a partir da seleção. Se utilizar a sintaxe de valores, você estará fornecendo os dados 'manualmente', geralmente a partir de literais ou variáveis.

Depende da situação, mas você poderia tentar algo assim....

BEGIN

DECLARE varSaveCode INTEGER;

INSERT INTO A_Sales_Ledger(xxx, yyyy, Customer_ID)

SELECT xxx, yyy, Customer_ID FROM Customers WHERE Cust_Name LIKE '%Unique String%';

SET varSaveCode = SQLCode;

IF varSaveCode <> 0 THEN

-- Algum tratamento de erros apropriado, talvez....

MESSAGE 'Oops - ocorreu um erro, código '||varSaveCode A CONSOLA;

ROLLBACK;

ELSE

COMMIT;

END IF;

END

-- Nota, código não testado - Acredito que MESSAGE pode lidar com a mistura de tipos


(Você poderia tentar MESSAGE ao CLIENTE - depende da capacidade do seu software cliente para capturar a mensagem.)


HTH, Paul

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Paul

Obrigado - °acho que estive de cabeça hoje!

Apenas para confirmar (não me importo de bater a cabeça por um tempo com erros de SELECT, mas se um INSERT der errado pode ter algumas consequências indesejadas)

øNão preciso de VALUES?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Dave,

Inverta a situação e ajuste um pouco a sintaxe......

INSERIR EM A_Sales_Ledger(xxx, yyyy, Customer_ID)

SELECIONAR xxx, yyy, Customer_ID DE Customers ONDE Cust_Name LIKE '%String Única%';


DocCommentXchange† - Sintaxe 2.


Atenciosamente, Paul

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?