Har ett par selectsatser som slås samman med UNION. Hej Erik Vad jag ville var att summera allt månadsvis (närvaro, frånvaro summa). Men läste att det inte går att påverka det slutliga resultatet vid en UNION med Group By. Så jag löste det med en:Grupperar inte rätt vid flera select
<code>
SELECT DATENAME(Month,CAST(SUBSTRING(dbo.Presence.PresenceDate,1,4)+'-'+SUBSTRING(dbo.Presence.PresenceDate,5,2)+'-'+SUBSTRING(dbo.Presence.PresenceDate,7,2) AS DateTime)) AS 'Månad',
SUM(Presence.CalcPresTime) AS 'Närvaro', SUM(0) AS 'Frånvaro'
FROM Employee INNER JOIN
Presence ON Employee.EmployeeNr = Presence.EmployeeNr
WHERE (Employee.Department = 'PITEÅ') AND (Presence.PresenceDate BETWEEN 20050101 AND 20050430) AND (Presence.SalaryArtPres = '000' OR
Presence.SalaryArtPres = '110')
Group By DATENAME(Month,CAST(SUBSTRING(dbo.Presence.PresenceDate,1,4)+'-'+SUBSTRING(dbo.Presence.PresenceDate,5,2)+'-'+SUBSTRING(dbo.Presence.PresenceDate,7,2) AS DateTime))
UNION
SELECT DATENAME(Month,CAST(SUBSTRING(dbo.Absence.AbsenceDate,1,4)+'-'+SUBSTRING(dbo.Absence.AbsenceDate,5,2)+'-'+SUBSTRING(dbo.Absence.AbsenceDate,7,2) AS DateTime)) AS 'Månad',
SUM(0) AS 'Närvaro', SUM(Absence.CalcAbsTime) AS 'Närvaro'
FROM Employee INNER JOIN
Absence ON Employee.EmployeeNr = Absence.EmployeeNr
WHERE (Employee.Department = 'PITEÅ') AND (Absence.AbsenceDate BETWEEN 20050101 AND 20050430)
Group By DATENAME(Month,CAST(SUBSTRING(dbo.Absence.AbsenceDate,1,4)+'-'+SUBSTRING(dbo.Absence.AbsenceDate,5,2)+'-'+SUBSTRING(dbo.Absence.AbsenceDate,7,2) AS DateTime))</code>
Om jag skippar andra selectsatsen så grupperas det som jag vill ha det: Distinkta månader..
EX.
[månad] [Närvaro] [Frånvaro] [Summa]
Januari 4,50 1,0 3,50
Februari 4,50 1,0 3,50
Mars 2,0 0,0 2,0
osv...
Men om jag tar med andra selecten i en union så blir det inte destinkta månader..
EX.
[månad] [Närvaro] [Frånvaro] [Summa]
Januari 4,50 1,0 3,50
Januari 3,5 2,0 1,5
Februari 4,50 1,0 3,50
Mars 2,0 0,0 2,0
Mars 1,0 1,0 0,0
Osv...
Hur grupperar jag ihop resultatet av de två selectsatserna???
Kan någon hjälpa mig hur jag skall lösa detta vore jag tacksam.
(Använder MSSQL 2000)Sv: Grupperar inte rätt vid flera select
Det blir faktiskt distincta rader.
T ex, raden:
"Januari 4,50 1,0 3,50"
och raden:
"Januari 3,5 2,0 1,5"
är olika.
Hur är det du vill att det skall stå?, skall den summera ihop "Närvaro", "Frånvaro" och "Summa"?
// MvH BjörneSv:Grupperar inte rätt vid flera select
INSERT INTO z
SELECT FROM x
UNION
SELECT FROM y