Sopprimendo più valori in Microsoft SQL
-
21-12-2019 - |
Domanda
Di seguito è riportato un esempio di codice che ho e vorrei stampare il numero di conto di un utente insieme a ciascun numero di procedura e il numero di sequenza che si presenta per quell'appuntamento, ad esempio:
acc num proc num Seq num
--------------------------------
Vxxxxxxxxx26 44.42 1
Vxxxxxxxxx26 57.94 2
Vxxxxxxxxx26 57.32 3
Vxxxxxxxxx26 38.93 4
.
Ma invece stampa molti duplicati della stessa cosa per la stessa data e ora, ad esempio:
acc num proc num Seq num
--------------------------------
Vxxxxxxxxx26 44.42 1
Vxxxxxxxxx26 57.94 2
Vxxxxxxxxx26 57.32 3
Vxxxxxxxxx26 38.93 4
Vxxxxxxxxx26 44.42 1
Vxxxxxxxxx26 57.94 2
Vxxxxxxxxx26 57.32 3
Vxxxxxxxxx26 38.93 4
Vxxxxxxxxx26 44.42 1
Vxxxxxxxxx26 57.94 2
Vxxxxxxxxx26 57.32 3
Vxxxxxxxxx26 38.93 4
.
Come posso limitarlo in modo da mostrare solo 1 set di valori piuttosto che 5 set di valori?
BTW Sono un principiante per impilare overflow e sql quindi ti preghiamo di tenerlo a mente durante la revisione.Grazie.
Nota: sembra che sia la tabella OeOrders
.Quando questo non è unito, ha le righe appropriate, quando si unisce all'IT si espande con tutte le file multiple.
Codice
DECLARE
@StartDate DateTime,
@EndDate DateTime
SET @StartDate = '10/28/2013 00:00:000'
SET @EndDate = '11/28/2013 23:59:000'
SET @RecordType = '6'
SELECT
,AbstractData.AccountNumber AS AcctNum_2
,'I9:'+AbsDrgProcedures.DrgProcedure AS ProcCode_3
,AbsDrgProcedures.ProcedureSeqID AS Priority_4
FROM AbstractData
LEFT JOIN AbsDrgProcedures
ON (AbsDrgProcedures.VisitID = AbstractData.VisitID) AND AbsDrgProcedures.VisitID IS NOT NULL
LEFT JOIN OeOrders
ON (OeOrders.VisitID = AbstractData.VisitID)
WHERE
AbstractData.PtStatus <> 'REF'
AND OeOrders.ServiceDateTime BETWEEN @StartDate and @EndDate
. Soluzione
Seleziona risultati distinti - SELECT DISTINCT
anziché SELECT
.
Altri suggerimenti
Selezionare Distinct Filtrerà i duplicati, aggiungi distinti dopo la selezione e dovrebbe funzionare