Avatar billede petersen7913 Forsker
09. februar 2022 - 16:41 Der er 6 kommentarer

Hvordan får jeg vist data i flere kolonner?

Jeg skal vise antal print fordelt på farveprint (Color) og scannede print (Scan)
Jeg har en union, som viser antal sider og om der er Color eller Scan. Jeg vil gerne vise det som rækker:
id, Color, Scan
men jeg får en fejl ved den afsluttende ')' før group.
Det må da kunne lades sig gøre?????

På forhånd tak

select id
, pages
, PrinterInfoType
from
(
select s.[id]
, s.[pages]
, col.[PrinterInfoType]
from [dbo].[SourceTilSQLServer] s
inner join [dbo].[PrinterInfo] col
    on s.accid = col.[AccidCode]
where col.PrinterInfoType = 'Color'
union
select s.[id]
, s.[pages]
, sc.[PrinterInfoType]
from [dbo].[SourceTilSQLServer] s
inner join [dbo].[PrinterInfo] sc
    on s.accid = sc.[AccidCode]
where sc.PrinterInfoType = 'Scan'
)
group by s.[id] order by 1
Avatar billede arne_v Ekspert
09. februar 2022 - 17:23 #1
Først: SQL er fremragende til at hente data med men ikke så god til at formatere data.- måske var det bedre bare atbruge SQL til at hente de rigtige tal og så lade applikationen vise dem i kolonner!?
Avatar billede arne_v Ekspert
09. februar 2022 - 17:25 #2
Men hvis du nu vil: UNION er måden at stable resultset oven på hinanden - JOIN er måden at stable resultset ved siden af hinanden, så hvis du vil have dine kolonner skal du nok lave en JOIN.
Avatar billede petersen7913 Forsker
09. februar 2022 - 17:44 #3
Men har du et konkret forslag til hvordan en join ville se ud? Eller et link til et eksempel?
Jeg vil gerne bruge en select for at jeg bagefter kan bruge den til at tilføje rækker til en tabel. Det kunne jeg også ved at tilføje nye rækker og så opdatere dem, men det må kunne gøres smartere tænker jeg
Avatar billede arne_v Ekspert
09. februar 2022 - 20:03 #4
Utestet:

SELECT s1.id AS id,s1.pages AS col,s2.pages AS scan
FROM ((SourceTilSQLServer s1 JOIN PrinterInfo pi1 ON s1.accid = pi1.AccidCode AND pi1.PrinterInfoType = 'Color')
    JOIN SourceTilSQLServer s2 ON s1.id = s2.id)
    JOIN PrinterInfo pi2 ON s2.accid = pi2.AccidCode AND pi2.PrinterInfoType = 'Scan'
Avatar billede petersen7913 Forsker
09. februar 2022 - 20:34 #5
Tak det vil jeg prøve
Avatar billede petersen7913 Forsker
10. februar 2022 - 08:34 #6
arne_v - tak for dit forslag, som jeg lige har prøvet af. Det virker ikke umiddelbart, så indtil videre fortsætter jeg med en anden løsning (tilføj rækker og flere opdateringer).
Men det er ret interessant, så når jeg får tid vil jeg bestemt arbejde videre med dit forslag
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester