en-USsv-SE

Active Forums

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 21 Mar 2012 12:18 PM by  HenrikF
SQLug.se challenge 2011
 117 Replies
Sort:
You are not authorized to post a reply.
Page 3 of 6 << < 12345 > >>
Author Messages
Eddan
New Member
New Member
Posts: 11


--
06 Apr 2011 11:08 PM
--Mitt bidrag
;
WITH allMatch AS
(
SELECT peopleId, WantedSetID, count(wa.attributeId) noOfattributes
FROM wantedAttribute wa
INNER JOIN peopleAttribute pa ON wa.attributeID = pa.attributeID
AND wa.attributeValue= pa.attributeValue
GROUP BY peopleID, WantedSetID
),
noOfAttributesTofulFill AS
(
SELECT WantedSetID, Count(attributeID) noOfattributes
FROM wantedAttribute
GROUP BY WantedSetID
)
SELECT allm.peopleId, allm.WantedSetID
FROM allMatch allm
INNER JOiN noOfAttributesTofulFill noa ON noa.WantedSetID=allm.WantedSetID
AND noa.noOfAttributes=allm.noOfAttributes
Eddan
New Member
New Member
Posts: 11


--
06 Apr 2011 11:08 PM
--Mitt bidrag
;
WITH allMatch AS
(
SELECT peopleId, WantedSetID, count(wa.attributeId) noOfattributes
FROM wantedAttribute wa
INNER JOIN peopleAttribute pa ON wa.attributeID = pa.attributeID
AND wa.attributeValue= pa.attributeValue
GROUP BY peopleID, WantedSetID
),
noOfAttributesTofulFill AS
(
SELECT WantedSetID, Count(attributeID) noOfattributes
FROM wantedAttribute
GROUP BY WantedSetID
)
SELECT allm.peopleId, allm.WantedSetID
FROM allMatch allm
INNER JOiN noOfAttributesTofulFill noa ON noa.WantedSetID=allm.WantedSetID
AND noa.noOfAttributes=allm.noOfAttributes
Eddan
New Member
New Member
Posts: 11


--
06 Apr 2011 11:09 PM
--Mitt bidrag
;
WITH allMatch AS
(
SELECT peopleId, WantedSetID, count(wa.attributeId) noOfattributes
FROM wantedAttribute wa
INNER JOIN peopleAttribute pa ON wa.attributeID = pa.attributeID
AND wa.attributeValue= pa.attributeValue
GROUP BY peopleID, WantedSetID
),
noOfAttributesTofulFill AS
(
SELECT WantedSetID, Count(attributeID) noOfattributes
FROM wantedAttribute
GROUP BY WantedSetID
)
SELECT allm.peopleId, allm.WantedSetID
FROM allMatch allm
INNER JOiN noOfAttributesTofulFill noa ON noa.WantedSetID=allm.WantedSetID
AND noa.noOfAttributes=allm.noOfAttributes
Eddan
New Member
New Member
Posts: 11


--
06 Apr 2011 11:10 PM
--Mitt bidrag
WITH allMatch AS
(
SELECT peopleId, WantedSetID, count(wa.attributeId) noOfattributes
FROM wantedAttribute wa
INNER JOIN peopleAttribute pa ON wa.attributeID = pa.attributeID
AND wa.attributeValue= pa.attributeValue
GROUP BY peopleID, WantedSetID
),
noOfAttributesTofulFill AS
(
SELECT WantedSetID, Count(attributeID) noOfattributes
FROM wantedAttribute
GROUP BY WantedSetID
)
SELECT allm.peopleId, allm.WantedSetID
FROM allMatch allm
INNER JOiN noOfAttributesTofulFill noa ON noa.WantedSetID=allm.WantedSetID
AND noa.noOfAttributes=allm.noOfAttributes
Eddan
New Member
New Member
Posts: 11


--
06 Apr 2011 11:10 PM
--Mitt bidrag
WITH allMatch AS
(
SELECT peopleId, WantedSetID, count(wa.attributeId) noOfattributes
FROM wantedAttribute wa
INNER JOIN peopleAttribute pa ON wa.attributeID = pa.attributeID
AND wa.attributeValue= pa.attributeValue
GROUP BY peopleID, WantedSetID
),
noOfAttributesTofulFill AS
(
SELECT WantedSetID, Count(attributeID) noOfattributes
FROM wantedAttribute
GROUP BY WantedSetID
)
SELECT allm.peopleId, allm.WantedSetID
FROM allMatch allm
INNER JOiN noOfAttributesTofulFill noa ON noa.WantedSetID=allm.WantedSetID
AND noa.noOfAttributes=allm.noOfAttributes
Eddan
New Member
New Member
Posts: 11


--
06 Apr 2011 11:11 PM
--Mitt bidrag
;
WITH allMatch AS
(
SELECT peopleId, WantedSetID, count(wa.attributeId) noOfattributes
FROM wantedAttribute wa
INNER JOIN peopleAttribute pa ON wa.attributeID = pa.attributeID
AND wa.attributeValue= pa.attributeValue
GROUP BY peopleID, WantedSetID
),
noOfAttributesTofulFill AS
(
SELECT WantedSetID, Count(attributeID) noOfattributes
FROM wantedAttribute
GROUP BY WantedSetID
)
SELECT allm.peopleId, allm.WantedSetID
FROM allMatch allm
INNER JOiN noOfAttributesTofulFill noa ON noa.WantedSetID=allm.WantedSetID
AND noa.noOfAttributes=allm.noOfAttributes
Göran
New Member
New Member
Posts: 11


--
07 Apr 2011 08:48 AM
Hej !

Här kommer mitt bidrag, kanske blir det flera :-). Får man någon återkoppling på era körtider ?

Mvh
Göran Rönnbäck, SQL Service

1. Setup

CREATE PROCEDURE [dbo].[SQLUG_GetRows]

AS

/*

DBCC DROPCLEANBUFFERS

DBCC FREEPROCCACHE

EXEC [dbo].[SQLUG_GetRows]

*/

SET NOCOUNT ON

SELECT WantedAttribute.WantedSetID, WantedAttribute.AttributeID, WantedAttribute.AttributeValue,

PeopleAttribute.PeopleID

INTO #tmpSQLUG

FROM WantedAttribute INNER JOIN

PeopleAttribute ON WantedAttribute.AttributeID = PeopleAttribute.AttributeID

AND WantedAttribute.AttributeValue = PeopleAttribute.AttributeValue

SELECT DISTINCT #tmpSQLUG.PeopleID, #tmpSQLUG.WantedSetID

FROM #tmpSQLUG

CROSS APPLY

(

SELECT [WantedSetID], COUNT(*) AS Count_WantedSetID

FROM [dbo].[WantedAttribute] Wanted

WHERE Wanted.WantedSetID = #tmpSQLUG.WantedSetID

GROUP BY [WantedSetID]

) AS Wanted

CROSS APPLY

(

SELECT [WantedSetID], COUNT(*) AS Count_WantedSetID

FROM #tmpSQLUG People

WHERE People.WantedSetID = #tmpSQLUG.WantedSetID AND

People.PeopleID = #tmpSQLUG.PeopleID

GROUP BY [WantedSetID]

) AS People

WHERE Wanted.Count_WantedSetID = People.Count_WantedSetID

DROP TABLE #tmpSQLUG

GO

2. Exekveringsdel som skall kunna kras flera gnger

EXEC [dbo].[SQLUG_GetRows]

3. Cleanup

/****** Object: StoredProcedure [dbo].[SQLUG_GetRows] Script Date: 04/06/2011 19:27:27 ******/

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SQLUG_GetRows]') AND type in (N'P', N'PC'))

DROP PROCEDURE [dbo].[SQLUG_GetRows]

GO



Lars Gråmark
New Member
New Member
Posts: 5


--
10 Apr 2011 02:36 PM
Test. Vill bara säkerställa att min lösning inte publiceras automatiskt mvh Lars Gråmark
Lars Gråmark
New Member
New Member
Posts: 5


--
10 Apr 2011 02:36 PM
Test. Vill bara säkerställa att min lösning inte publiceras automatiskt mvh Lars Gråmark
Lars Gråmark
New Member
New Member
Posts: 5


--
10 Apr 2011 02:36 PM
Test. Vill bara säkerställa att min lösning inte publiceras automatiskt mvh Lars Gråmark
Lars Gråmark
New Member
New Member
Posts: 5


--
10 Apr 2011 02:37 PM
Test. Vill bara säkerställa att min lösning inte publiceras automatiskt

mvh
Lars Gråmark
Lars Gråmark
New Member
New Member
Posts: 5


--
10 Apr 2011 02:41 PM
Hej, här kommer mitt lösningsförslag.

mvh
Lars Gråmark

-----------------------
-- BEGIN setup.sql
-----------------------
IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_PeopleAttribute_1')
DROP INDEX dbo.PeopleAttribute.IX_PeopleAttribute_1
GO
PRINT 'Creating index dbo.PeopleAttribute.IX_PeopleAttribute_1'
GO
CREATE NONCLUSTERED INDEX IX_PeopleAttribute_1
ON dbo.PeopleAttribute (AttributeID, AttributeValue, PeopleID)
WITH FILLFACTOR = 100
GO

IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_WantedAttribute_1')
DROP INDEX dbo.WantedAttribute.IX_WantedAttribute_1
GO
PRINT 'Creating index dbo.WantedAttribute.IX_WantedAttribute_1'
GO
CREATE NONCLUSTERED INDEX IX_WantedAttribute_1
ON dbo.WantedAttribute (AttributeID, AttributeValue, WantedSetID)
WITH FILLFACTOR = 100
GO


-----------------------
-- BEGIN main.sql
-----------------------
IF OBJECT_ID( 'dbo.findPartners', 'P' ) IS NOT NULL
DROP PROCEDURE dbo.findPartners;
GO
PRINT 'Creating procedure dbo.findPartners'
GO
-- Recompile för att öka sannolikheten för en rimlig plan
-- oberoende hur last-testerna genomförs.
CREATE PROCEDURE dbo.findPartners
WITH RECOMPILE
AS
BEGIN
SET NOCOUNT ON

SELECT pa.PeopleID, wa.WantedSetID
FROM dbo.WantedAttribute wa WITH(NOLOCK)
JOIN dbo.PeopleAttribute pa WITH(NOLOCK)
ON wa.AttributeID = pa.AttributeID
AND wa.AttributeValue = pa.AttributeValue
GROUP BY pa.PeopleID, wa.WantedSetID
HAVING COUNT(*) >= (
SELECT COUNT(iwa.WantedSetID) as cnt
FROM dbo.WantedAttribute iwa WITH(NOLOCK)
WHERE iwa.WantedSetID = wa.WantedSetID
)
END
GO
--EXEC dbo.findPartners


-----------------------
-- BEGIN cleanup.sql
-----------------------
IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_PeopleAttribute_1')
BEGIN
PRINT 'Dropping index dbo.PeopleAttribute.IX_PeopleAttribute_1';
DROP INDEX dbo.PeopleAttribute.IX_PeopleAttribute_1;
END

IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_WantedAttribute_1')
BEGIN
PRINT 'Dropping index dbo.WantedAttribute.IX_WantedAttribute_1'
DROP INDEX dbo.WantedAttribute.IX_WantedAttribute_1;
END

IF OBJECT_ID( 'dbo.findPartners', 'P' ) IS NOT NULL
BEGIN
PRINT 'Dropping procedure dbo.findPartners'
DROP PROCEDURE dbo.findPartners;
END
Christian J
New Member
New Member
Posts: 9


--
14 Apr 2011 10:12 AM
Hej!
Jag undrar om vi kan anta att kombinationen WantedSetID_AttributeID är unik? Det finns ingen constraint, men beskrivningen låter som att det skulle kunna finnas en.
/Christian
Christian J
New Member
New Member
Posts: 9


--
14 Apr 2011 03:55 PM
Glöm min fråga om uniqueness. Det finns jo visst en UX_WantedAttribute!
/Christian
Christian J
New Member
New Member
Posts: 9


--
14 Apr 2011 06:46 PM
Kul tävling tack att ni anordnar den!

Jag har en väldigt straight-forward lösning. Den presterar rätt bra så jag var nästan förvånad om den gav rätt resultat.
Här kommer min första kod i alla fall.

Hälsningar och tack igen,
Christian


/***************************************
Preparation script
***************************************/

CREATE UNIQUE NONCLUSTERED INDEX UX_WantedAttribute_WantedSetID_AttributeValue_AttributeID ON [dbo].[WantedAttribute]
( WantedSetID ASC,
AttributeValue ASC,
AttributeID ASC) WITH
(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR=100)
GO
CREATE NONCLUSTERED INDEX [IX_PeopleAttribute_AttributeValue_AttributeID] ON [dbo].[PeopleAttribute]
( [AttributeValue] ASC,
[AttributeID] ASC) INCLUDE ( [PeopleID]) WITH
(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR=100)
GO
CREATE VIEW [dbo].[Matches]
AS (SELECT pa.PeopleID, wa.WantedSetID, matchCnt=COUNT(*)
FROM PeopleAttribute AS pa
INNER JOIN WantedAttribute AS wa ON pa.AttributeID=wa.AttributeID
AND pa.AttributeValue=wa.AttributeValue
GROUP BY pa.PeopleID, wa.WantedSetID
)
GO

/***************************************
Run query
***************************************/

SELECT PeopleID, WantedSetID
FROM Matches as x
CROSS APPLY (SELECT wantedCnt=COUNT(*)
FROM WantedAttribute
WHERE WantedSetID=x.WantedSetID
GROUP BY WantedSetId
) as w
WHERE x.matchCnt=w.wantedCnt

/***************************************
Cleanup script
***************************************/

DROP INDEX UX_WantedAttribute_WantedSetID_AttributeValue_AttributeID ON [dbo].[WantedAttribute]
DROP INDEX [IX_PeopleAttribute_AttributeValue_AttributeID] ON [dbo].[PeopleAttribute]
DROP VIEW [dbo].[Matches]

--- Scripts end


SwePeso
New Member
New Member
Posts: 67


--
20 Apr 2011 11:36 AM
Nya ställningar! Det är oerhört jämnt mellan bidragen.

T.ex mellan 1 och 12 skiljer det bara 3 sekunder!



Jag har två bidrag kvar att utvärdera och det är två SQLCLR-rutiner.

Preliminärt resultat placerar dem nertill på listan.





***********************************************

* # * Förslag * Företag *

***********************************************

* 0 * Peso * *

* 1 * Martin Höglund * Bring Citymail *

* 2 * Eddan 1 * *

* 2 * Joel Greijer 1 * Releye AB *

* 4 * Christian 1 * *

* 4 * Per Scheffer 2a * Bizware *

* 4 * Per Scheffer 2b * Bizware *

* 4 * Peter Abelsson 1 * H & M *

* 4 * Zhong 3 * B3IT *

* 4 * Lars Gråmark 1 * *

* 4 * Henrik F 1 * *

* 4 * Patrik Molin 1 * Affecto *

* 12 * Zhong 2 * B3IT *

* 13 * Per Scheffer 1 * Bizware *

* 14 * Göran Rönnbäck 1 * SQL Service *

* 15 * Zhong 4 * B3IT *

* 16 * Malin D 1 * Affecto *

* * Zhong 1 * B3IT *

* * Malin D 2 * Affecto *

***********************************************



Mitt bidrag (som är utom tävlan) är ca 20% snabbare än ledaren just nu, så det finns mer att göra på era bidrag.



Om placeringen har ändrats sedan senast beror det på att testdatamängden utökats för att tydligare åskådliggöra skillnaderna i performance. Dock körs alla bidrag på samma datamängd vid varje tillfälle.



Just nu ska ett rätt resultat returnera 281 625 rader.



Göran
New Member
New Member
Posts: 11


--
20 Apr 2011 09:51 PM
Hej !

Här kommer mitt andra bidrag. önskvärt vore om det också blir bättre svarstider här än 13 dagar.

Mvh/
Göran Rönnbäck

1. Setup

CREATE VIEW [dbo].[qryWantedPeople]

AS

SELECT WantedAttribute.WantedSetID, PeopleAttribute.PeopleID, COUNT(*) AS qryWantedPeople_Count

FROM WantedAttribute INNER JOIN

PeopleAttribute ON WantedAttribute.AttributeID = PeopleAttribute.AttributeID

GROUP BY WantedAttribute.WantedSetID, PeopleAttribute.PeopleID

GO

CREATE PROCEDURE [dbo].[SQLUG_GetRows_GR2]

AS

/*

DBCC DROPCLEANBUFFERS

DBCC FREEPROCCACHE

EXEC [dbo].[SQLUG_GetRows_GR2]

*/

SET NOCOUNT ON

SELECT People.PeopleID, People.WantedSetID

FROM qryWantedPeople People

CROSS APPLY

(

SELECT [WantedSetID], COUNT(*) AS Count_WantedSetID

FROM [dbo].[WantedAttribute] Wanted

WHERE Wanted.WantedSetID = People.WantedSetID

GROUP BY [WantedSetID]

) AS Wanted

WHERE People.qryWantedPeople_Count = Wanted.Count_WantedSetID

GO

2. Exekveringsdel

EXEC [dbo].[SQLUG_GetRows_GR2]

3. Cleanup

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SQLUG_GetRows_GR2]') AND type in (N'P', N'PC'))

DROP PROCEDURE [dbo].[SQLUG_GetRows_GR2]

GO

IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[qryWantedPeople]'))

DROP VIEW [dbo].[qryWantedPeople]

GO

Göran
New Member
New Member
Posts: 11


--
20 Apr 2011 09:51 PM
Hej !

Här kommer mitt andra bidrag. önskvärt vore om det också blir bättre svarstider här än 13 dagar.

Mvh/
Göran Rönnbäck

1. Setup

CREATE VIEW [dbo].[qryWantedPeople]

AS

SELECT WantedAttribute.WantedSetID, PeopleAttribute.PeopleID, COUNT(*) AS qryWantedPeople_Count

FROM WantedAttribute INNER JOIN

PeopleAttribute ON WantedAttribute.AttributeID = PeopleAttribute.AttributeID

GROUP BY WantedAttribute.WantedSetID, PeopleAttribute.PeopleID

GO

CREATE PROCEDURE [dbo].[SQLUG_GetRows_GR2]

AS

/*

DBCC DROPCLEANBUFFERS

DBCC FREEPROCCACHE

EXEC [dbo].[SQLUG_GetRows_GR2]

*/

SET NOCOUNT ON

SELECT People.PeopleID, People.WantedSetID

FROM qryWantedPeople People

CROSS APPLY

(

SELECT [WantedSetID], COUNT(*) AS Count_WantedSetID

FROM [dbo].[WantedAttribute] Wanted

WHERE Wanted.WantedSetID = People.WantedSetID

GROUP BY [WantedSetID]

) AS Wanted

WHERE People.qryWantedPeople_Count = Wanted.Count_WantedSetID

GO

2. Exekveringsdel

EXEC [dbo].[SQLUG_GetRows_GR2]

3. Cleanup

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SQLUG_GetRows_GR2]') AND type in (N'P', N'PC'))

DROP PROCEDURE [dbo].[SQLUG_GetRows_GR2]

GO

IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[qryWantedPeople]'))

DROP VIEW [dbo].[qryWantedPeople]

GO

Jonas Bergström
New Member
New Member
Posts: 3


--
21 Apr 2011 03:38 PM

--Mitt första bidrag. Måste börja nånstans så man får ett jämförelsevärde med de andra :)
--Skickar de tre del skripten för setup, huvudskript, uppstädning efter varann nedan
--mvh Jonas Bergström, SQL Service


-----------------------------------------------------------------------------------------

--setup.sql Jonas Bergström SQL Service version 1 "vyer+sp+ix" 2011-04-21

-----------------------------------------------------------------------------------------

--skapa separat vy för antal kriterier per setid

CREATE VIEW dbo.vwAmtWantsPerSet AS

SELECT wa.WantedSetID, COUNT(*) AS amtWants

FROM [NAV_det].[dbo].[WantedAttribute] wa

GROUP BY wa.WantedSetID

GO

--skapa separat vy för antal matchade kriterier

CREATE VIEW dbo.vsAmtPeopleWantsPerSet AS

SELECT wa.WantedSetID, pa.PeopleID, COUNT(*) AS amtPeople

FROM [NAV_det].[dbo].[WantedAttribute] wa

JOIN [NAV_det].[dbo].[PeopleAttribute] pa ON wa.AttributeID = pa.AttributeID

AND wa.AttributeValue = pa.AttributeValue

GROUP BY wa.WantedSetID, pa.PeopleID

GO

--sp som kör vyfrågan, join två vyer med extra join villkor att antal måste vara minst lika stort för att vara med i resultatet

GO

CREATE PROCEDURE dbo.pWants AS

SET NOCOUNT ON

SELECT p.PeopleID, p.WantedSetID

FROM vwAmtWantsPerSet w

JOIN vsAmtPeopleWantsPerSet p ON w.WantedSetID = p.WantedSetID AND w.amtWants <= p.amtPeople

RETURN 0

GO

--de som används i de två vyerna, som nya nc index 29 45

CREATE NONCLUSTERED INDEX IX_WSetAttrValue ON dbo.WantedAttribute (WantedSetID, AttributeId, AttributeValue)

GO

CREATE NONCLUSTERED INDEX IX_PIdAttrIdAttrValue ON dbo.PeopleAttribute (PeopleID, AttributeId, AttributeValue)

GO

CREATE NONCLUSTERED INDEX IX_PAttrIdAttrValue ON dbo.PeopleAttribute (AttributeId, AttributeValue) --15 37

go

CREATE NONCLUSTERED INDEX IX_WSetId ON dbo.WantedAttribute (WantedSetID) --15 37

go

-----------------------------------------------------------------------------------------

--huvudskript Jonas Bergström SQL Service version 1 "vyer+sp+ix" 2011-04-21

-----------------------------------------------------------------------------------------

exec dbo.pWants

GO

-----------------------------------------------------------------------------------------

--Uppstädning Jonas Bergström SQL Service version 1 "vyer+sp+ix" 2011-04-21

-----------------------------------------------------------------------------------------

DROP VIEW dbo.vwAmtWantsPerSet

GO

DROP VIEW dbo.vsAmtPeopleWantsPerSet

GO

DROP PROCEDURE pWants

GO

DROP INDEX dbo.PeopleAttribute.IX_PIdAttrIdAttrValue

GO

DROP INDEX dbo.PeopleAttribute.IX_PAttrIdAttrValue

GO

DROP INDEX dbo.WantedAttribute.IX_WSetAttrValue

GO

DROP INDEX dbo.WantedAttribute.IX_WSetId

GO

SwePeso
New Member
New Member
Posts: 67


--
21 Apr 2011 10:47 PM
Vi har en ny ledare!



************************************************

* # * Förslag * Företag *

************************************************

* 0 * Peso * *

* 1 * Göran Rönnbäck 2 * SQL Service *

* 2 * Martin Höglund * Bring Citymail *

* 2 * Eddan 1 * *

* 2 * Joel Greijer 1 * Releye AB *

* 5 * Christian 1 * *

* 5 * Per Scheffer 2a * Bizware *

* 5 * Per Scheffer 2b * Bizware *

* 5 * Peter Abelsson 1 * H & M *

* 5 * Zhong 3 * B3IT *

* 5 * Lars Gråmark 1 * *

* 5 * Henrik F 1 * *

* 5 * Patrik Molin 1 * Affecto *

* 13 * Zhong 2 * B3IT *

* 14 * Per Scheffer 1 * Bizware *

* 15 * Göran Rönnbäck 1 * SQL Service *

* 16 * Zhong 4 * B3IT *

* 17 * Malin D 1 * Affecto *

* 18 * Zhong 1 * B3IT *

* * Malin D 2 * Affecto *

************************************************
You are not authorized to post a reply.
Page 3 of 6 << < 12345 > >>