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


Gruppera data SQL sats där char och integer förekommer får ej ut rätt data

Postades av 2010-01-18 09:10:44 - jonas Eriksson, i forum sql-server/msde, Tråden har 5 Kommentarer och lästs av 2738 personer

Hej,

jag har en databas enligt:

ID | Int
PID | Int
Value | Char

1 | 1 | A
2 | 1 | B
3 | 1 | C
4 | 2 | 1
5 | 2 | 2
6 | 2 | 3
7 | 3 | 1
8 | 3 | 2
9 | 3 | A
10 | 4 | 1
11 | 4 | 2
12 | 4 | 10

Nu gör jag en sql-sats:
SELECT PID, MAX(Value) as Val FROM tbl_PID GROUP BY PID
Resultatet blir då:
1 | C
2 | 3
3 | A
4 | 2

Jag vill ha följande resultat:
1 | C
2 | 3
3 | A
4 | 10

Hur sjutton kan man kombinera att MAX satsen skall välja senaste bokstav om det finns bokstäver och nummer för ett visst PID, och om det endast förekommer nummer för ett PID så är det högsta numret som skall visas?

Jag har försökt med ASCII() men ej lyckats, stort tack på förhand.

Mvh
Jonas


Svara

Sv: Gruppera data SQL sats där char och integer förekommer får ej ut rätt data

Postades av 2010-01-18 14:19:51 - Niklas Jansson

Det enklaste är nog att lägga på en 0:a före value om value bara är ett tecken.
Men det funkar bara om du har exakt det upplägget du har nu. Hur stora kan numren och bokstäverna vara?

Och vad händer om det skulle stå A1?

Den andra varianten är att dela upp listan i två delar, "de som har bokstäver" och "de som inte har bokstäver", och omvandla de senare till tal, och sen ta max.


Svara

Sv: Gruppera data SQL sats där char och integer förekommer får ej ut rätt data

Postades av 2010-01-19 09:24:27 - jonas Eriksson

Hej,

jag får inte till det genom att lägga på 0 får följande fel:

[Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting the varchar value 'A' to data type int.

då jag skriver MAX(0 + Value)

Hmm... väldigt skumt


Svara

Sv:Gruppera data SQL sats där char och integer förekommer får ej ut rätt data

Postades av 2010-01-19 13:48:48 - Niklas Jansson

För det första måste du ju kolla så att du bara lägger till ett tecken om det är exakt ett där, och sen är det kanske:

'0' + Value

Eller möjligtvis CONCAT eller något liknanade.


Svara

Sv:Gruppera data SQL sats där char och integer förekommer får ej ut rätt data

Postades av 2010-01-19 19:26:11 - Håkan Borneland

Ja krångligt kan det bli när man blandar (int och char) och ger...

Om man ska följa Niklas förslag så blir det som exempel nr 1 här nedan.
Vill man "tvätta" bort 0:an kan man göra som exempel nr 2.

1.
<code>
SELECT
PID,
MAX(CASE WHEN (LEN([Value]) = 1) THEN '0' + [Value] ELSE [Value] END) AS [Value]
FROM @tbl_PID
GROUP BY PID;
</code>

2.
<code>
;WITH get_values AS
(
SELECT
PID,
MAX(CASE WHEN (LEN([Value]) = 1) THEN '0' + [Value] ELSE [Value] END) AS [Value]
FROM @tbl_PID
GROUP BY PID
)

SELECT
PID,
CASE WHEN LEFT([Value], 1) = '0' THEN RIGHT([Value], LEN([Value])) ELSE [Value] END AS [Value]
FROM get_values;
</code>

OBS!!!
Eftersom vi ännu inte vet hur datan kan se ut, så kan förslaget behövar justeras...


Svara

Sv: Gruppera data SQL sats där char och integer förekommer får ej ut rätt data

Postades av 2010-01-27 08:50:54 - jonas Eriksson

Stort Tack!!!!


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 615
27 953
271 709
5 475
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