Avatar billede SannyNielsen Nybegynder
18. januar 2013 - 16:18 Der er 3 kommentarer

View uden dubletter

Hej

Jeg skal oprette et view med data fra 3 forskellige tabeller
FOr at der ikke kommer en dobbeltreæpresentation af data skal der være en where betingelse. Hvad er fremgangsmåden?

Jeg arbejder i SQL
Avatar billede arne_v Ekspert
18. januar 2013 - 16:23 #1
Der skal vaere N-1 sammenknytnings betingelser med N tabeller.

Enten gammeldags WHERE eller mere moderne ON.
Avatar billede SannyNielsen Nybegynder
22. januar 2013 - 19:25 #2
Okay tak!

Hvordan skal jeg angive det i følgende statement? Når jeg kører denne kommer der flere sæt ud

SELECT    Reg.RegistrationNo, Reg.VehicleNumber, Reg.CustomerNumber, Reg.VehicleLicenseNo, Reg.PlantName, Reg.TerminalId, Reg.ArticleName,
                      CAST(Reg.WeightNet AS decimal(12, 2)) AS WeightNet, Detail.UnitPrice, Reg.FeeTotals, Reg.PriceTotals, dbo.Customer.AccountNo, dbo.Customer.AccountNo2,
                      Reg.DateFirst
FROM        dbo.Registration AS Reg INNER JOIN
                      dbo.Customer ON Reg.FacilityId = dbo.Customer.FacilityId AND Reg.FacilityId = dbo.Customer.FacilityId INNER JOIN
                      dbo.RegistrationDetails AS Detail ON Detail.FacilityId = Reg.FacilityId AND Detail.RegistrationNo = Reg.RegistrationNo AND Detail.DetailType = 100 AND
                      dbo.Customer.FacilityId = Detail.FacilityId
WHERE    (Reg.InvoiceState = 0) AND (Reg.Exported = 1)
Avatar billede SannyNielsen Nybegynder
23. januar 2013 - 14:45 #3
Okay tak!

Hvordan skal jeg angive det i følgende statement? Når jeg kører denne kommer der flere sæt ud

SELECT    Reg.RegistrationNo, Reg.VehicleNumber, Reg.CustomerNumber, Reg.VehicleLicenseNo, Reg.PlantName, Reg.TerminalId, Reg.ArticleName,
                      CAST(Reg.WeightNet AS decimal(12, 2)) AS WeightNet, Detail.UnitPrice, Reg.FeeTotals, Reg.PriceTotals, dbo.Customer.AccountNo, dbo.Customer.AccountNo2,
                      Reg.DateFirst
FROM        dbo.Registration AS Reg INNER JOIN
                      dbo.Customer ON Reg.FacilityId = dbo.Customer.FacilityId AND Reg.FacilityId = dbo.Customer.FacilityId INNER JOIN
                      dbo.RegistrationDetails AS Detail ON Detail.FacilityId = Reg.FacilityId AND Detail.RegistrationNo = Reg.RegistrationNo AND Detail.DetailType = 100 AND
                      dbo.Customer.FacilityId = Detail.FacilityId
WHERE    (Reg.InvoiceState = 0) AND (Reg.Exported = 1)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester