Avatar billede Slettet bruger
29. august 2006 - 14:23 Der er 11 kommentarer og
1 løsning

sql forspørgelse

Jeg har en database som indeholder følgende felter.

Username, Filename, Printer, Dato, tid, Workstation, spacer1, spacer2, Papertype, Parameters, Size, Pages, Cost, Balance)

Det er en database over prints. Hver record indeholde altså bla hvilken printer man har printet på og hvor mange prints jobbet fylder
Jeg vil så gerne finde ud af hvor meget der er printet på hver enkelt printer.  Jeg har opbygget følgende indtil vidre, men mangler at få talt prints på hver enkel printer.

SELECT Printer, Pages, count(*) FROM `log`  WHERE Username REGEXP "[[:digit:]]+" AND Printer NOT REGEXP '^ADM' GROUP BY Printer ORDER BY Count(*) DESC;

Resultatet af ovenstående giver følgende:
Printer                  Pages            count(*)
\\printserver\printer1      1                1488
\\printserver\printer2      3                738

Altså printer 1 har modtaget 1488 jobs, Sideantalet ved jeg så ikke lige hvordan jeg skal få talt sammen.
Avatar billede nielle Nybegynder
29. august 2006 - 18:14 #1
SELECT printer, count(*) AS jobs, sum(pages) AS pagesTotal
FROM log
GROUP BY Printer
ORDER BY jobs DESC
Avatar billede nielle Nybegynder
29. august 2006 - 18:17 #2
SELECT printer, count(*) AS jobs, sum(pages) AS pagesTotal
FROM log
WHERE Username REGEXP "[[:digit:]]+" AND Printer NOT REGEXP '^ADM'
GROUP BY Printer
ORDER BY jobs DESC
Avatar billede Slettet bruger
10. september 2006 - 17:27 #3
thx mate. Det virker jo bare...
Et lille ekstra spm. Hvis nu jeg skal have en række med som indeholder, hvor mange hver pagesTotal er ud det sammlede antal prints
Avatar billede Slettet bruger
10. september 2006 - 17:28 #4
ups - hvor mange PROCENT hver pagesTotal
Avatar billede nielle Nybegynder
10. september 2006 - 17:36 #5
Så skal der vist programmeres. Er det PHP, eller noget andet, du bruger?
Avatar billede Slettet bruger
10. september 2006 - 19:56 #6
Det er ASP
Ok ,så kan jeg godt selv lave det. Synes bare det kunne være smart og gøre det via sql

Vil du have nogle points?
Avatar billede nielle Nybegynder
10. september 2006 - 20:20 #7
Jeg kan sagtens hjælpe dig med ASP-koden ... det var bare fordi at det mest plejer at være PHP når folk snakker MySQL.

Nej, jeg er ikke bekendt med nogen SQL-løsning på procent-problemetikken. Der er heller ikke noget iblandt MySQL's aggregat-funktioner som ser lovende ud:

http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html

... og et svar :^)
Avatar billede Slettet bruger
11. september 2006 - 21:16 #8
følgende kan ikke gøre det ?

I was trying to get the percentage of a number rows contained in a table in one query. Normally you could do this with 2 queries:

SELECT COUNT(*) as total FROM table WHERE poll=1231 and question=2
SELECT COUNT(*) as result FROM table WHERE poll=1231 and question=2 and answer = 1

and then you get the percentage getting (result/total)*100

I looked over and over all the MySql documentation, and finally I tried this and works (thanks to Tim Ferrer):

SELECT (COUNT(DISTINCT T2.id)/COUNT(DISTINCT T1.id)*100) as percentage FROM table T1, table T2 WHERE T1.poll=1231 and T1.question=2 and T2.poll=1231 and T2.question=2 and T2.answer=1;

That works for me.
Avatar billede Slettet bruger
11. september 2006 - 21:17 #9
>Jeg kan sagtens hjælpe dig med ASP-koden ... det var bare fordi at det mest plejer at være PHP når folk snakker MySQL.

Jeg ville bare ikke spilde din tid på noget jeg selv kunne løse :)
Avatar billede nielle Nybegynder
11. september 2006 - 21:39 #10
> Jeg ville bare ikke spilde din tid på noget jeg selv kunne løse :)

Jeg værdsætter skam også at folk selv forsøger at løse det. Det lære de jo mest ud af. :^)

Angåemde din SQL-sætning: Jeg kan desværre ikke rigtig gennemskue hvad det er den gør, eller hvordan den passer ind i din kode. Har du fået den til at virke, og giver den i givet fald de rigtige resultater?
Avatar billede Slettet bruger
12. september 2006 - 11:17 #11
det har jeg ikke. Jeg kunne heller ikke helt gennemskue den. Fandt den bare på det link du leverede. Du får tak for hjælpen... Jeg skal nok finde ud af noget.
Avatar billede nielle Nybegynder
12. september 2006 - 16:56 #12
Hvis du skal have assistance med ASP-koden soger du bare til her i dette spørgsmål. :^)
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