Permalänk
Medlem

SQL inner join, sub-query?

Har en fråga angående en SQL-fråga.

Jag har genom en inner join pusslat ihop från två tabeller och visar resultaten. So far so good.

Så här ser frågan ut.

SELECT TBL1.foljesedel, TBL1.fritext, COUNT(TBL1.foljesedel) AS antal, TBL2.regnummer
FROM TBL1 INNER JOIN
TBL2 ON TBL2.kollinr = TBL1.kollinr
WHERE TBL1.ankomst=0
GROUP BY TBL1.foljesedel, TBL1.fritext, TBL2.regnummer
ORDER BY TBL1.foljesedel

Detta baseras ju å att det finns data med kollinummer i TBL1 och TBL2.
Men jag vill även ha med data från TBL1 där fritext = 'aviserad', även om det fattas kollinr från TBL2.

Går det enkelt få med nån slags sub-query där jag inkluderar detta?

Visa signatur

K#

Permalänk
Medlem

Kanske kan ta en outer join istället och filtrera resultat på "TBL2.regnummer IS NOT NULL OR TBL1.fritext IS 'aviserad'"?

Visa signatur

Redbox: Asrock B650 Lightning ATX, 7800x3D -20CCO, XFX 6950XT, 2x32GB Corsair Vengence 6400 CL32, WD SN770 2TB, Corsair RMe 1000, Lian Li Lancool 216, Peerless Assassin 120 SE
Purpbox: Z87-Pro, I5 4670K@4.2, Sapphire 290 TRI-X, 2x8GB Crucial Tactical@stock, Deep Silence 1
Samsung Evo 250+500GB + QVO 1TB, 2x1TB 7200RPM backup/lagring
Det var bättre förr: E5300 2600MHz -> 3640MHz, Celeron 300A -> 450MHz

Permalänk
Medlem
Skrivet av e1m1:

Kanske kan ta en outer join istället och filtrera resultat på "TBL2.regnummer IS NOT NULL OR TBL1.fritext IS 'aviserad'"?

Ahh, perfekt. Tack!

Fick till det med FULL OUTER JOIN istället.

En fråga till appropå detta. I och med att det finns null data på dessa regnummer-rader nu, går det att fylla dessa null-rader med något custom på något vis?

Visa signatur

K#

Permalänk
Medlem
Skrivet av atman:

Ahh, perfekt. Tack!

Fick till det med FULL OUTER JOIN istället.

En fråga till appropå detta. I och med att det finns null data på dessa regnummer-rader nu, går det att fylla dessa null-rader med något custom på något vis?

Du kan använda SQL-funktionen COALESCE.
Som select COALESCE(tbl2.regnr, 'Inget regnr!') as regnr

Dokumentation: https://msdn.microsoft.com/en-us/library/ms190349.aspx
(fungerar i andra rbdms)

Skrivit på telefon, skyller felstavningar och brist på grammatik på detta.

Visa signatur

Jag är en optimist; det är aldrig så dåligt så att det inte kan bli sämre.

Permalänk
Medlem
Skrivet av zyberzero:

Du kan använda SQL-funktionen COALESCE.
Som select COALESCE(tbl2.regnr, 'Inget regnr!') as regnr

Dokumentation: https://msdn.microsoft.com/en-us/library/ms190349.aspx
(fungerar i andra rbdms)

Skrivit på telefon, skyller felstavningar och brist på grammatik på detta.

Tack!

Funka perfekt!

Visa signatur

K#