webForumDet fria alternativet

Räkna poster med samma värde på visst fält

Databaser & SQL

2 svar · 481 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

Hejhej!

Jag har följande enkla SQL

SELECT [OrdNo] FROM [F0001].dbo.[Ord] WHERE [WebPg] = '" & sTaskNr

Allt bygger på att det får endast finnas ett ordernummer till ett uppdragsnummer (Fältet WebPg används till uppdragsnummer)

Så, det får alltså endast returneras en post.

Hur kan jag SQL-frågan få ut om det finns fler än en post som har samma uppdragsnummer (sTaskNr) och sedan göra något vettigt av det?

Mvh
Henrik

Medlem sedan mars 20034 471 inlägg
#2

Inte riktigt säker på hur du menar... Din SQL-fråga kommer att plocka ut OrdNo från samtliga rader som har WebPg = TaskNr. Så OM det finns 5 rader med det TaskNr:t, varav 2 har samma OrdNo får du ut 5 rader (varav 1 dubblett).

Om du vill försäkra dig om att bara få ut unika värden klämmer du in ett DISTINCT:

SELECT DISTINCT [OrdNo] FROM [F0001].dbo.[Ord] WHERE [WebPg] = '" & sTaskNr

så får du i exemplet ovan bara ut 4 rader med olika OrdNo i.

Om du däremot menar att du vill kolla INNAN frågan körs huruvida det finns mer än en rad, så kan du räkna antalet rader först:

SELECT Count([OrdNo]) FROM [F0001].dbo.[Ord] WHERE [WebPg] = '" & sTaskNr

och sedan hantera fallet med flera rader separat.

Medlem sedan jan. 20013 582 inlägg
#3

aasah skrev:

Om du däremot menar att du vill kolla INNAN frågan körs huruvida det finns mer än en rad, så kan du räkna antalet rader först:

SELECT Count([OrdNo]) FROM [F0001].dbo.[Ord] WHERE [WebPg] = '" & sTaskNr

och sedan hantera fallet med flera rader separat.

Så får det bli!

Mvh
Henrik

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)