jeg ønsker en SQL sætning som kun retunerer de Item No_ records som findes én gang.
Altså, står et Item No_ listet 2 eller mere gange, skal de ignoreres. Men er Item No_ kun i tabellen en gang, så skal det med ud.
jeg har forsøgt med denne sætning, men det virker ikke rigtig. Hvad mon jeg gør galt?
SELECT [Item No_], [Posting Date], COUNT([Item No_]) AS Antal FROM myTable GROUP BY [Entry Type], [Posting Date], [Item No_] HAVING ([Entry Type] = 1) AND (COUNT([Item No_]) = 1) ORDER BY [Posting Date] DESC
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
Slettet bruger
22. januar 2015 - 12:35#1
HAVING COUNT(*) = 1 og flyt [Entry Type] = 1 til WHERE
SELECT [Item No_], [Posting Date], COUNT([Item No_]) AS Antal FROM myTable WHERE [Entry Type] = 1 GROUP BY [Entry Type], [Posting Date], [Item No_] HAVING COUNT(*)= 1 ORDER BY [Posting Date] DESC
Synes godt om
Slettet bruger
22. januar 2015 - 12:37#2
GROUP BY skal også ændres ellers får du én pr. dato:
SELECT [Item No_], max([Posting Date]), COUNT([Item No_]) AS Antal FROM myTable WHERE [Entry Type] = 1 GROUP BY [Item No_] HAVING COUNT(*)= 1 ORDER BY [Posting Date] DESC
Hvis du vil have fat i alle de detail-linjer der har et bestemt antal linjer, kan du lave en join til din grupperede tabel
SELECT t1.* FROM myTable t1 INNER JOIN ( SELECT [Entry Type],[Item No_], [Posting Date] FROM myTable GROUP BY [Entry Type], [Posting Date], [Item No_] HAVING (COUNT([Item No_]) = 1) AS t2 ON t1.[Entry Type]=t2.[Entry Type] AND t1.[Item No_]=t2.[Item No_] AND t1.[Posting Date]=t2.[Posting Date]
Det vil åbne for at vælge andre kriterier end 1.
Hvis du er tilfreds med kun at fange dem med 1 række, er det kun små ting du bør ændre i din oprindelige forespørgsel:
SELECT [Item No_], [Posting Date], COUNT([Item No_]) AS Antal FROM myTable WHERE ([Entry Type] = 1) GROUP BY [Posting Date], [Item No_] HAVING (COUNT([Item No_]) = 1) ORDER BY [Posting Date] DESC
dvs. GROUP BY kan kun indeholde de felter der også er i SELECT sætningen (ekskl. COUNT, der jo er en grupperingsfunktion) og kriteriet på [Entry Type] må tilsvarende flyttes fra HAVING til WHERE (da det ikke indgår i SELECT felterne).
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.