Ho questa tabella:Cerca riga specifica in un altro tavolo per data
SELECT * FROM #BH2
BookingID | Detail | CreatedAgentCode | ChangeDate
----------|------------------------------------------------------|------------------|--------------------------
196162093 | MRS LUCIENE CORREA correa MRS LUCIENE CORREA | lclisboa | 2015-01-18 13:29:35.130
196162093 | MRS LUCIENE CORREA LISBOA MRS LUCIENE CORREA correa | VOMATOS | 2015-01-18 13:25:26.420
E questo:
SELECT * FROM BookingPassengerVersion WHERE BookingID = 196162093 ORDER BY ModifiedDate DESC
BookingID | Title | FirstName | MiddleName | LastName | AgentCode | ModifiedDate
----------|-------------------------------------------------------|----------------------------
196162093 | MRS | LUCIENE | | CORREA | lclisboa | 2015-01-18 13:29:35.130
196162093 | MRS | LUCIENE | CORREA | correa | VOMATOS | 2015-01-18 13:25:26.420
196162093 | MRS | LUCIENE | CORREA | LISBOA | ADM | 2015-01-12 18:01:09.503
196162093 | MRS | LUCIENE | CORREA | LISBOA | ADM | 2015-01-12 18:01:05.227
ho bisogno di aggiungere una nuova colonna alla old name
e new name
:
Ho provato questa query:
BEGIN TRY DROP TABLE #FINAL_TABLE END TRY BEGIN CATCH END CATCH
SELECT DISTINCT
BH.BookingID,
-- S OldName,
(CASE WHEN _NewName.Title>'' THEN _NewName.Title+' ' ELSE '' END)+_NewName.FirstName+' '+ _NewName.MiddleName+' '+_NewName.LastName AS NewName,
BH.CreatedAgentCode,
BH.ChangeDate,
INTO #FINAL_TABLE
FROM #BH2 BH
CROSS APPLY
(
SELECT TOP 2
Title
, FirstName
, MiddleName
, LastName
FROM BookingPassengerVersion
WHERE BookingID = BH.BookingID
AND BH.ChangeDate = ModifiedDate
ORDER BY ModifiedDate DESC
) _NewName
Ma non ho potuto ottenere questo risultato:
BookingID | OldName | NewName | Detail | CreatedAgentCode | ChangeDate
----------|---------------------------|---------------------------|-----------------------------------------------------|------------------|--------------------------
196162093 | MRS LUCIENE CORREA correa | MRS LUCIENE CORREA | MRS LUCIENE CORREA correa MRS LUCIENE CORREA | lclisboa | 2015-01-18 13:29:35.130
196162093 | MRS LUCIENE CORREA LISBOA | MRS LUCIENE CORREA correa | MRS LUCIENE CORREA LISBOA MRS LUCIENE CORREA correa | VOMATOS | 2015-01-18 13:25:26.420
Tabella # BH2
ha la colonna detail
, questa colonna è il Old name
più il New name
.
Ho bisogno dello old name
e dello new name
separati in due colonne, quindi userò la tabella BookingPassengerVersion
con la cronologia delle modifiche.
Il nome è costituito dall'aggiunta di title
, first name
, middle name
e last name
.
Troppo pigro per aggiungere una risposta, ma controlla questo link: [Come accedere alla riga precedente e successivo Valore della riga nell'istruzione SELECT?] (Http://blog.sqlauthority.com/2013/09/22/sql-server-how-to-access-the-previous-row-and-next-row-value-in- select-statement /) – MicSim
Davvero non capisco la tua domanda. 'Ho bisogno di aggiungere una nuova colonna al vecchio nome e al nuovo nome:' non dice dove vuoi aggiungere. Hai bisogno di una query o vuoi aggiungere una colonna a una tabella? Per prima cosa devi dire quello che vuoi che la query restituisca. Inoltre ti suggerisco di creare il tuo schema in http://sqlfiddle.com/ che ci aiuterà a vedere ciò che hai –
La tabella # BH2 ha la colonna dei dettagli, questa colonna è il vecchio nome più il nuovo nome. Ho bisogno che il vecchio nome e il nuovo nome siano separati in due colonne, quindi userò la tabella BookingPassengerVersion con la cronologia delle modifiche. Il nome si forma aggiungendo il titolo, il nome, il secondo nome e il cognome –