Ich habe den folgenden Code aus einer Datenbank auswählen, aber ich möchte nur den ersten Datensatz für jede eindeutige ID. Gibt es eine Möglichkeit, die SQL zu ändern, um dies zu erreichen?Wie kann ich diese SQL-Anweisung ändern, um nur die erste von jeder ID auszuwählen?
SELECT
[CARL_Property].ID
,[PrDoorNum]
,[PrAddress1]
,[PrAddress2]
,[PrAddress3]
,[PrAddress4]
,[PrPostcode]
,[PrRent]
,[PrAgreedRent]
,[PrCommence]
,[PrEnd]
,[PrAvailable]
,[PrGrossIncome]
,[PrCouncilTax]
,[PrInventoryFee]
,[PrLetFee]
,[PrReletFee]
,[PrDateWithdrawn]
,[Rent Review]
,CARL_Owners.OwForenames
,CARL_Owners.OwSurname
,CARL_Property_List.[ID]
,CARL_Property_List.[PrId]
,CARL_Property_List.[PLBedrooms]
,CARL_Property_List.[PlRooms]
,CARL_Property_List.[PlBathrooms]
,CARL_Property_List.[PlReceptions]
,CARL_Property_List.[PlDeposit]
,CARL_Tenant_Contacts.[Tenant Name]
,CARL_New_Tenants.[TnLeaseperiod]
,CARL_Property_List.[PlAdvertising]
,[CARL_Property_Memos].[PrNotes]
,[CARL_Safety].[PrGasInsp]
from dbo.CARL_Property Join dbo.[CARL_Property_Memos] on CARL_Property.ID=CARL_Property_Memos.PrID Join dbo.CARL_Owners on CARL_Owners.ID=CARL_Property.OwID Join dbo.CARL_PROPERTY_LIST ON dbo.CARL_PROPERTY.ID=dbo.CARL_PROPERTY_LIST.PrId Join dbo.[CARL_New_Tenants] ON CARL_New_Tenants.PrId=CARL_Property.ID JOIN CARL_Tenant_Contacts ON CARL_New_Tenants.ID = CARL_Tenant_Contacts.TnID Join [dbo].[CARL_Safety] On dbo.CARL_Property.ID=dbo.CARL_Safety.PrID
Das Ergebnis ist wie folgt.
Von Ihrem Screenshot scheint es mir, dass es eine Art von Vielfalt innerhalb Ihrer Tabelle Joins gibt. Ich würde empfehlen, die Abfrage oder die FK-Definitionen weiter zu vertiefen. Andernfalls könnten Sie einfach eine SELECT DISTINCT oder GROUP BY die Spalten verwenden, die Sie "eindeutig" sein möchten – alessalessio
Dies ist super einfach mit ROW_NUMBER. Sie müssen nur definieren, was "zuerst" bedeutet. Definitionsgemäß ist eine Tabelle eine ungeordnete Menge. –