Hej, har ett problem med ordningen i resultatet. Behöver sortera efter intPrioritet från tblInkProcentMonster och efter intPrio från tblInkKostnadstyper - måste få allt i ett resultat sorterat på dessa två prioriteter. Var sätter du din ORDER BY? Du lägger ORDER BY sist. Ja, nedan är på rätt väg men har fler problem. Ja, nedan är på rätt väg men har fler problem. Ja, nedan är på rätt väg men har fler problem. Med en dåres envishet postar jag: Ja, men jag får inte resultatet jag vill ha, hänsvisar till mitt senaste svar. Det verkar som det inte är möjligt. Får nog tänka om och lösa detta på ett annat sätt. Tack ändå. Kanske du kan lösa det med hjälp av Temp-tabeller? Har försökt tolka hur du vill ha ut din data. Är det möjligen att denna fråga hjälper dig på vägen till önskat resultat: Kan du ge ett exempel på data i de två tabellerna och hur du vill ha resultatet? Hej,ORDER BY funkar inte med "Union"
tblInkProcentMonster.intTyp är en relation till tblInkKostnadsTyper.intID.
Koden nedan funkar men när jag försöker sätta in ORDER BY vill det inte!
(SELECT tblInkProcentMonster.intTyp, tblInkProcentMonster.intPrioritet
FROM tblInkArende INNER JOIN
tblInkProcentMonster ON tblInkArende.intProvisionsMonster = tblInkProcentMonster.intMonsterID
WHERE tblInkArende.intID = 68) UNION
(SELECT intID, intPrio FROM tblInkKostnadsTyper)
Någon hejare på sql som vet?Sv: ORDER BY funkar inte med "Union"
Testa att ge kolumnerna Alias
SELECT * FROM (
SELECT tblInkProcentMonster.intTyp AS Typ , tblInkProcentMonster.intPrioritet
FROM tblInkArende INNER JOIN
tblInkProcentMonster ON tblInkArende.intProvisionsMonster = tblInkProcentMonster.intMonsterID
WHERE tblInkArende.intID = 68) UNION
(SELECT intID AS Typ, intPrio FROM tblInkKostnadsTyper)
) AS Tabell
ORDER BY Typ
Kanske?Sv: ORDER BY funkar inte med "Union"
Eftersom UNION lägger ihop till en sammanställd tabell så sorterar du det resultatet.Sv: ORDER BY funkar inte med "Union"
(SELECT tblInkProcentMonster.intTyp, tblInkProcentMonster.intPrioritet As Prio
FROM tblInkArende INNER JOIN
tblInkProcentMonster ON tblInkArende.intProvisionsMonster = tblInkProcentMonster.intMonsterID
WHERE tblInkArende.intID = 68)UNION
(SELECT intID, intPrio As Prio FROM tblInkKostnadsTyper)
ORDER BY Prio
Ordningen ska vara följande: intTyp från första select-satsen ska först ordnas efter sin intPrioritet, sen ska det fyllas på med intID från andra select-satsen ordnat efter intPrio. Juxet är att där tblInkProcentMonster.intTyp finns och motsvarar tblInkKostnadsTyper.intID ska tblInkProcentMonster.intTyp komma med i resultatet (ordnat efter intPrioritet) men inte tblInkKostnadsTyper.intPrio! Alltså, jag vet inte om detta går men hade hoppats på det.
Jag har alltså en (tblInkProcentMonster) tabell som har en typ som har en relation till en kostnadstyp (tblInkKostnadsTyper). Prioriteten i tblInkProcentMonster ska komma före eller rättare sagt prioriteras före själva kostnadstypens prioritet. Alltså, om typen (kostnadstypen) inte finns i procentmönstertabellen finns den i Kostnadstyper och ska med i resultatet men ordnat efter sin egen prioritet. Vidare..jag vill även att resultatet inte ska visa dubletter - mao. typer som finns i procentmönster finns alltid i kostnadstyper, när så är fallet ska inte typen från kostnadstyper vara med i resultatet.
Detta känns riktigt klurigt men jag måste få ETT resultat där dessa typer är sorterade.
Tacksam för hjälp.Sv: ORDER BY funkar inte med "Union"
(SELECT tblInkProcentMonster.intTyp, tblInkProcentMonster.intPrioritet As Prio
FROM tblInkArende INNER JOIN
tblInkProcentMonster ON tblInkArende.intProvisionsMonster = tblInkProcentMonster.intMonsterID
WHERE tblInkArende.intID = 68)UNION
(SELECT intID, intPrio As Prio FROM tblInkKostnadsTyper)
ORDER BY Prio
Ordningen ska vara följande: intTyp från första select-satsen ska först ordnas efter sin intPrioritet, sen ska det fyllas på med intID från andra select-satsen ordnat efter intPrio. Juxet är att där tblInkProcentMonster.intTyp finns och motsvarar tblInkKostnadsTyper.intID ska tblInkProcentMonster.intTyp komma med i resultatet (ordnat efter intPrioritet) men inte tblInkKostnadsTyper.intPrio! Alltså, jag vet inte om detta går men hade hoppats på det.
Jag har alltså en (tblInkProcentMonster) tabell som har en typ som har en relation till en kostnadstyp (tblInkKostnadsTyper). Prioriteten i tblInkProcentMonster ska komma före eller rättare sagt prioriteras före själva kostnadstypens prioritet. Alltså, om typen (kostnadstypen) inte finns i procentmönstertabellen finns den i Kostnadstyper och ska med i resultatet men ordnat efter sin egen prioritet. Vidare..jag vill även att resultatet inte ska visa dubletter - mao. typer som finns i procentmönster finns alltid i kostnadstyper, när så är fallet ska inte typen från kostnadstyper vara med i resultatet.
Detta känns riktigt klurigt men jag måste få ETT resultat där dessa typer är sorterade.
Tacksam för hjälp.Sv: ORDER BY funkar inte med "Union"
(SELECT tblInkProcentMonster.intTyp, tblInkProcentMonster.intPrioritet As Prio
FROM tblInkArende INNER JOIN
tblInkProcentMonster ON tblInkArende.intProvisionsMonster = tblInkProcentMonster.intMonsterID
WHERE tblInkArende.intID = 68)UNION
(SELECT intID, intPrio As Prio FROM tblInkKostnadsTyper)
ORDER BY Prio
Ordningen ska vara följande: intTyp från första select-satsen ska först ordnas efter sin intPrioritet, sen ska det fyllas på med intID från andra select-satsen ordnat efter intPrio. Juxet är att där tblInkProcentMonster.intTyp finns och motsvarar tblInkKostnadsTyper.intID ska tblInkProcentMonster.intTyp komma med i resultatet (ordnat efter intPrioritet) men inte tblInkKostnadsTyper.intPrio! Alltså, jag vet inte om detta går men hade hoppats på det.
Jag har alltså en (tblInkProcentMonster) tabell som har en typ som har en relation till en kostnadstyp (tblInkKostnadsTyper). Prioriteten i tblInkProcentMonster ska komma före eller rättare sagt prioriteras före själva kostnadstypens prioritet. Alltså, om typen (kostnadstypen) inte finns i procentmönstertabellen finns den i Kostnadstyper och ska med i resultatet men ordnat efter sin egen prioritet. Vidare..jag vill även att resultatet inte ska visa dubletter - mao. typer som finns i procentmönster finns alltid i kostnadstyper, när så är fallet ska inte typen från kostnadstyper vara med i resultatet.
Detta känns riktigt klurigt men jag måste få ETT resultat där dessa typer är sorterade.
Tacksam för hjälp.Sv: ORDER BY funkar inte med "Union"
SELECT * FROM (
SELECT tblInkProcentMonster.intTyp AS Typ , tblInkProcentMonster.intPrioritet AS Prio
FROM tblInkArende INNER JOIN
tblInkProcentMonster ON tblInkArende.intProvisionsMonster = tblInkProcentMonster.intMonsterID
WHERE tblInkArende.intID = 68) UNION
(SELECT intID AS Typ, intPrio AS Prio FROM tblInkKostnadsTyper)
) AS Tabell
ORDER BY Typ, Prio
Notera tillägget av "AS Prio"
Dubletter tas bort automatiskt, för att behålla dem skriver du "UNION ALL"
OBS!!! Jag har förutsatt att du har SQL Server...Sv: ORDER BY funkar inte med "Union"
Sv: ORDER BY funkar inte med "Union"
Typ:
INSERT INTO #Temp1
SELECT bla bla bla
ORDER BY 1, 2, 3
INSERT INTO #Temp2
SELECT bla bla bla
ORDER BY 1, 2, 3
SELECT * FROM #Temp1
UNION
SELECT * FROM #Temp2
DROP TABLE #Temp1
DROP TABLE #Temp2
Om du förstår vad jag menar...
/JohanSv: ORDER BY funkar inte med "Union"
<code>
(SELECT tblInkKostnadsTyper.intID As KostnadsTypeID,
tblInkKostnadsTyper.intPrio As KostnadsTypePrioritet,
Null As ProcentMonsterId,
Null As ProcentMonsterPrioritet
FROM tblInkKostnadsTyper)
UNION ALL
(SELECT tblInkProcentMonster.intTyp As KostnadsTypeID,
Null As KostnadsTypePrioritet,
tblInkProcentMonster.intID As ProcentMonsterId,
tblInkProcentMonster.intPrioritet As ProcentMonsterPrioritet
FROM tblInkProcentMonster LEFT JOIN
tblInkArende ON tblInkProcentMonster.intMonsterID = tblInkArende.intProvisionsMonster
WHERE tblInkArende.intID = 68)
ORDER BY KostnadsTypeID, KostnadsTypePrioritet, ProcentMonsterPrioritet
</code>Sv: ORDER BY funkar inte med "Union"
/mickeSv: ORDER BY funkar inte med "Union"
vet inte om jag fattar allt, men...
(SELECT 1, tblInkProcentMonster.intTyp, tblInkProcentMonster.intPrioritet As Prio
FROM tblInkArende INNER JOIN
tblInkProcentMonster ON tblInkArende.intProvisionsMonster = tblInkProcentMonster.intMonsterID
WHERE tblInkArende.intID = 68)
UNION
(SELECT 2, intID, intPrio As Prio FROM tblInkKostnadsTyper
WHERE NOT EXISTS (SELECT NULL FROM tblInkProcentMonster
WHERE intTyp = tblInkKostnadsTyper.intID))
ORDER BY 1,2,3
/Uffe