Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Dubletter?!

Postades av 2002-08-30 10:25:21 - Pär Hedberg, i forum asp - allmänt, Tråden har 10 Kommentarer och lästs av 789 personer

hej..

hur ska jag skriva en SQL fråga om gämför två fält och ser om det finns någon dublett..

ex en databas:

ID NAMN

nu vill jag ställa en fråga som kollar om det finns två eller fler namn som är likadana..


Svara

Sv: Dubletter?!

Postades av 2002-08-30 10:44:11 - Sara Winter

Testa detta, det är inte perfekt men det låter dig veta hur många det är med samma namn och du kan ändra det hur du vill.
<code>
namn = request.form("txtNamn")

SQL = "SELECT * FROM tblAnvandare"

'öppna din connection och recordset

lika = 0

rs.MoveFirst

do until rs.EOF
if namn = rs("Namn") then
lika = lika + 1
'eller hur du nu vill göra
end if
rs.MoveNext
loop

response.write "Det finns " & lika & " användare med samma namn."
</code>


Svara

Sv: Dubletter?!

Postades av 2002-08-30 10:48:56 - Pär Hedberg

Ok, vill nog hellre har något som fungerar direkt i SQL frågan..

Och som visar dubletterna tillsammans..

Ex
ID NAMN
12 Namn1
2 dubletter:
23 Namn1
59 Namn1

så man kan ta bort dubletterna..


Svara

Sv: Dubletter?!

Postades av 2002-08-30 10:52:46 - Christoffer Hedgate

[Radera dubletter]


Svara

Sv: Dubletter?!

Postades av 2002-08-30 11:00:34 - Pär Hedberg

precis vad jag behövde.. tack!


Svara

Sv: Dubletter?!

Postades av 2002-08-30 11:28:02 - Pär Hedberg

Fungerade nästan..

Men gör jag såhär:

Set DEL = Server.CreateObject("ADODB.Recordset")
DEL.Open "DELETE FROM temp2 WHERE ID IN (SELECT ID FROM temp2 x WHERE ID > (SELECT MIN(ID) FROM temp2 WHERE namn = x.namn))",Connect,2,2


så får jag timeout..

varför?


Svara

Sv: Dubletter?!

Postades av 2002-08-30 11:36:00 - Pär Hedberg

sen behöver jag söka på fler fält..

Dessa:
Namn
Adress
Ort

Får det inte att fungera riktigt..


Svara

Sv: Dubletter?!

Postades av 2002-08-30 13:16:06 - Andreas Hillqvist

Så här plockar du ut dubletter:

SELECT Min(temp2.ID) AS FirstID, temp2.Namn, temp2.Adress, temp2.Ort, Count(*) AS Count
FROM temp2
GROUP BY temp2.Namn, temp2.Adress, temp2.Ort
HAVING Count(*)>1


Svara

Sv: Dubletter?!

Postades av 2002-08-30 13:52:36 - Christoffer Hedgate

Japp, Andreas fråga är betydligt mer optimal för att lista alla dubbletter. Du kan enkelt utöka den till en fråga som tar bort alla dubletter utom det första för varje dublett.

delete from temp2
from temp2 a
inner join (SELECT min(id) as firstid,namn
FROM temp2
GROUP BY namn
HAVING Count(*)>1) b
ON a.namn = b.namn
AND a.id <> b.firstid


Svara

Sv: Dubletter?!

Postades av 2002-08-30 17:08:20 - Pär Hedberg

kan forftarande inte ta bort..

skriver jag:

Set DEL = Server.CreateObject("ADODB.Recordset")
DEL.Open "DELETE FROM temp2 WHERE ID IN (SELECT ID FROM temp2 x WHERE ID > (SELECT MIN(ID) FROM temp2 WHERE namn = x.namn))",Connect,2,2

så får jag timeout

skriver jag:

Set DEL = Server.CreateObject("ADODB.Recordset")
DEL.Open "delete from temp2 from temp2 a inner join (SELECT min(id) as firstid,namn FROM temp2 GROUP BY namn HAVING Count(*)>1) b ON a.namn = b.namn AND a.id <> b.firstid",Connect,2,2

så får jag timeout..

skriver jag:

Set DEL = Server.CreateObject("ADODB.Recordset")
DEL.Open "SELECT Min(temp2.ID) AS FirstID, temp2.Namn, temp2.Adress, temp2.Ort, Count(*) AS Count FROM temp2
GROUP BY temp2.Namn, temp2.Adress, temp2.Ort HAVING Count(*)>1",Connect,2,2
DEL.DELETE

så klagar den på att FirstID inte egentligen finns..

Vad göra?!


Svara

Sv: Dubletter?!

Postades av 2002-08-31 11:04:43 - Christoffer Hedgate

Skapa en connection och öppna den.
Skapa ett commandobjekt.

Set cmd.ActiveConnection = con
cmd.CommandText = "delete from temp2" & _
" from temp2 a" & _
" inner join (SELECT min(id) as firstid,namn" & _
" FROM temp2" & _
" GROUP BY namn" & _
" HAVING Count(*)>1) b" & _
" ON a.namn = b.namn" & _
" AND a.id <> b.firstid"

cmd.Execute , , 128

Jag är inte helt säker på att strängen blev korrekt, kan ha missat ett "-tecken eller något. Men du får nog rätt på det.


Svara

Nyligen

  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 864
27 962
271 767
422
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies