Vet inte om detta är rätt forum.... Är det fel får ni flytta!
Ok, till frågan!
Jag har en tabell med en massa uppdrag... varje uppdrag har ett nummer och utförs av en montör. Om ett uppdrag utförs av mer än en montör skapas en klon av det ursprungliga uppdraget. Varje uppdrag har en status från 0 till 5 som betyder exempelvis; klart, pågående, fakturerat.
Detta betyder att ett uppdrag kan ha olika status beroende på om en montör är klar med sin del men en annan inte är det.
Fråga!
Kan man på något sätt ställa en SQL-fråga i kombination med lite asp-kod för att visa att uppdraget är klonat och har olika status?
strSQL = "SELECT tblTask.TaskNr, tblTask.customerName, tblTask.task, iif (SUM(Time) IS NULL, 0, SUM(Time)) As totalTime, " &_
"(SELECT iif (SUM(Time) IS NULL, 0, SUM(Time)) FROM tblTime where taskNr = '" & strTaskNr & "' and spec in " &_
"('Arbetstid', 'Arbetstid B')) as workingTime " &_
"FROM tblTask " &_
"INNER JOIN tblTime ON tblTask.Id = tblTime.TaskId " &_
"WHERE " & strWhere & " " &_
"GROUP BY tblTask.TaskNr, tblTask.customerName, tblTask.task"
Den underfrågan som är med nu fungerar inte heller så bra... den tar med alla timmarna i tblTime. Dvs struntar i Wheredelen... Vad är det för fel...???
Och som sagt denna fråga kanske skalll vara i sql-forumet... sorry....
Om du vill så kan du göra en iif direkt i SQL:en för att jämföra statusarna, men jag tänkte att det kunde vara okej att få ut MinStatus och MaxStatus. Det finns inget som hindrar att du gör både och.
min och maxstatus funkar perfekt, men usercount returnerar ju "alla" montörerna kan man inte göra så att endast unika räknas.
dvs om pelle finns med 4 gånger och kalle 1 gång skall den räkna till "två"
och kan man inte få med alla olika statusar nu får man ju bara med att det har olika status. Det funkar ju fint om det bara är två, men säg att det är tre...
Tänkte det vore käckt att koppla siffrorna till ikoner!
min och maxstatus funkar perfekt, men usercount returnerar ju "alla" montörerna kan man inte göra så att endast unika räknas.
Det glömde jag. COUNT(DISTINCT User)
devotion skrev:
och kan man inte få med alla olika statusar nu får man ju bara med att det har olika status. Det funkar ju fint om det bara är två, men säg att det är tre...
Nej, för då blir det en helt annan sökning som måste returnera en rad per status/task, och då missar vi finessen med den grupperade sökningen.
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'count(distinct User)'.
Nu ser koden ut så här med hjälp från emission och lite annan hjälp...
"SELECT tblTask.TaskNr, tblTask.customerName, tblTask.task, " & _
"MIN(Status) as MinStatus, MAX(Status) as MaxStatus, (select count ( * ) " &_
"FROM (select distinct tblTime.user from tblTask INNER JOIN tblTime ON tblTask.Id = tblTime.TaskId where taskNr = '" & strTaskNr & "')) as userCount, " & _
"SUM(iif(spec in ('Arbetstid', 'Arbetstid B', 'Övertid', 'övertid B'),Time,0)) as totalTime, " & _
"SUM(iif(spec in ('Arbetstid', 'Arbetstid B'),Time,0)) as workingTime, " & _
"SUM(iif(spec in ('Övertid', 'Övertid B'),Time,0)) as overTime, " & _
"SUM(iif(Price,Price,0)) as totalPrice " & _
"FROM tblTask " & _
"LEFT JOIN tblTime ON tblTask.Id = tblTime.TaskId " & _
"WHERE " & strWhere & "GROUP BY tblTask.TaskNr, tblTask.customerName, tblTask.task"
Det funkar hyffsat, på så sätt att det inte kommer några felmeddelanden och sånt... Men det räknas fel..
Summeringsfunktionen "totalTime" räknar fel när det finns olika specifikationer i kolumnen "spec"
När det endast finns med 'Arbetstid' funkar det finfint, men när det är både 'Arbetstid' och 'Arbetstid B' tas inte 'Arbetstid B' med... mycket märkligt... Det kanske är svårt att ge några förslag på vad som kan göras när ni inte ser resultatet av satsen.. Men ni får gärna försöka...
Please!
Mvh
Henrik
268 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91