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


Lägga ditt rader som saknas

Postades av 2005-03-16 15:55:05 - Joakim Dörner, i forum sql-server/msde, Tråden har 4 Kommentarer och lästs av 736 personer

Hej
Jag har följande sql i en procedur

SQL koden
-----------------------------------------------------------------------
select mv.idmatris, m.aktuellperiod, mv.period, mv.idvariabel, v.namn, mv.varde
into #temp22
from matrisvarde mv

join matris m
on m.idmatris = mv.idmatris

join variabel v
on mv.idvariabel = v.idvariabel

where mv.period='2003k1' and mv.idmedlemkontoslag=74 -- and mv.idmedlemkonto=1 and mv.idmedlemsektor=9'
order by mv.idvariabel, mv.idmatris desc
------------------------------------------------------------------------

Mitt problem är att jag nu måste hitta en lösning för att få antalet idmatris stämma överens med respektive idvariabel.
tex som i tabellen nedan så finns alla varibler med i tre olika idmatriser förutom idvariabel 904 som bara finns med i två. Det jag måste göra är att få in en rad med idmatris 175 och idvariabel 904. Detta är för att jag skall för varje idvariabel jämföra värdet mellan dom. Finns det då en variabel som saknas i en idmatris så måste jag jämföra med en som är dittlagd.
Grejen är att jag vill få systemet att tro att idvariabel finns med i idmatris 175 så jag kan jämföra 216 med 175 som då skall ha ett null värde så att diffen blir 100% sedan 175 med 172 men eftersom det har ett null värde så skall det inte tas med sedan forsätter man så tills idvariabel inte är lika längre.

Resultatet kan se ut som nedan
-------------------------------------------------------------------------------------
idmatris period period2 idvariabel namn värde
216,00 2004k1 2003k1 903,00 OV_S0_M_B9F_S0 0,00
175,00 2004k1 2003k1 903,00 OV_S0_M_B9F_S0 0,00
172,00 2004k1 2003k1 903,00 OV_S0_M_B9F_S0 0,00

216,00 2004k1 2003k1 904,00 UB_S0_M_B9F_S0 0,00
172,00 2004k1 2003k1 904,00 UB_S0_M_B9F_S0 0,00

216,00 2004k1 2003k1 905,00 OK_S0_M_B9F_S121 0,00
175,00 2004k1 2003k1 905,00 OK_S0_M_B9F_S121 0,00
172,00 2004k1 2003k1 905,00 OK_S0_M_B9F_S121 0,00

216,00 2004k1 2003k1 906,00 TR_S0_M_B9F_S121 0,00
175,00 2004k1 2003k1 906,00 TR_S0_M_B9F_S121 0,00
172,00 2004k1 2003k1 906,00 TR_S0_M_B9F_S121 0,00
-----------------------------------------------------------------------------------

Lite komplicerat att förklara hoppas någon fattar annars är det bara att fråga.

/Joakim


Svara

Sv: Lägga ditt rader som saknas

Postades av 2005-03-16 16:32:25 - Göran Andersson

Ifall du använder left join så kommer du att få poster för alla värden, och där det inte fanns någon matchande post i tabellen du joinar in får du null i de fälten.


Svara

Sv: Lägga ditt rader som saknas

Postades av 2005-03-17 08:56:27 - Christoffer Hedgate

Jag tror nog tyvärr inte det finns någon vettig lösning till ditt problem. Antingen löses det i applikationen som använder detta, eller så får man nog försöka hantera problemet annorlunda.


Svara

Sv: Lägga ditt rader som saknas

Postades av 2005-03-17 18:12:51 - Göran Andersson

Så:

select m.idmatris, m.aktuellperiod, mv.period, v.idvariabel, v.namn, mv.varde
into #temp22
from matrisvarde mv

right join matris m
on m.idmatris = mv.idmatris

right join variabel v
on mv.idvariabel = v.idvariabel

where mv.period='2003k1' and mv.idmedlemkontoslag=74 -- and mv.idmedlemkonto=1 and mv.idmedlemsektor=9'
order by v.idvariabel, m.idmatris desc


Resultat:

-------------------------------------------------------------------------------------
idmatris period period2 idvariabel namn värde
216,00 2004k1 2003k1 903,00 OV_S0_M_B9F_S0 0,00
175,00 2004k1 2003k1 903,00 OV_S0_M_B9F_S0 0,00
172,00 2004k1 2003k1 903,00 OV_S0_M_B9F_S0 0,00

216,00 2004k1 2003k1 904,00 UB_S0_M_B9F_S0 0,00
175,00 2004k1 null 904,00 UB_S0_M_B9F_S0 null
172,00 2004k1 2003k1 904,00 UB_S0_M_B9F_S0 0,00

216,00 2004k1 2003k1 905,00 OK_S0_M_B9F_S121 0,00
175,00 2004k1 2003k1 905,00 OK_S0_M_B9F_S121 0,00
172,00 2004k1 2003k1 905,00 OK_S0_M_B9F_S121 0,00

216,00 2004k1 2003k1 906,00 TR_S0_M_B9F_S121 0,00
175,00 2004k1 2003k1 906,00 TR_S0_M_B9F_S121 0,00
172,00 2004k1 2003k1 906,00 TR_S0_M_B9F_S121 0,00
-----------------------------------------------------------------------------------


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 619
27 953
271 709
497
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