Bonjour,

Je suis en train de bosser sur un affichage de tableau avec une requête. J'ai besoin de faire une limite, je sais faire en mysql mais pas en mssql. J'ai bien vu la "fonction" top, mais je n'arrive pas à l'utiliser pour mon cas. Le truc c'est que ma requête est énorme et je suis perdu !

J'aimerais donc limiter 20 affichages depuis l'id numéro $news :

En mysql : ...requete... limit $news,20
Mais en mssql :s

Voila ma pauvre requête :p

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
$retour = mssql_query("
	SELECT
		A.Call_ID 'Ticket',
		A.Call_HistoFlag 'Status', 
		B1.Lang_Text 'Queue', 
		C1.Client_FirstName 'Client FirstName',
		C1.Client_LastName 'Client LastName',
		'Admin First Name' = CASE WHEN C2.Client_FirstName = 'Inter' THEN 'N/A' ELSE C2.Client_FirstName END,
		'Admin Last Name' = CASE WHEN C2.Client_LastName = 'Mail' THEN 'N/A' ELSE C2.Client_LastName END,
		'Admin Localisation' = CASE WHEN C2.Client_FirstName = 'Inter' THEN 'N/A' ELSE C2.Client_City END,
		(CONVERT(CHAR(23),A.Call_DateEntered,120)) 'Created', 
		'Closed' = CASE A.Call_HistoFlag WHEN 1 THEN (CONVERT(CHAR(23),A.Call_DateCompleted,120)) ELSE '' END,
		'Duration' = CASE A.Call_HistoFlag 
				WHEN 1 
				THEN
					CASE 
						WHEN (A.Call_DateCompleted - A.Call_DateEntered) > 2 THEN convert(varchar, (datediff(dd, 0, A.Call_DateCompleted - A.Call_DateEntered))) +' Days '
						WHEN (A.Call_DateCompleted - A.Call_DateEntered) > 1 THEN convert(varchar, (datediff(dd, 0, A.Call_DateCompleted - A.Call_DateEntered))) +' Day '
						ELSE '' 
					END
					 + convert(varchar, A.Call_DateCompleted - A.Call_DateEntered, 108) 
				ELSE '' 
			END,
		'Activity' = CASE WHEN B2.lang_Text = '(Aucun)' THEN 'N/A' ELSE B2.lang_Text END,
		'Domain' = CASE WHEN A.Call_ivProdType_ID < 2 THEN 'N/A' ELSE E.ivProdType_Desc1 END,
		'Application' = CASE WHEN A.Call_ivProduct_ID = 0 THEN 'N/A' ELSE F.ivProdData_Text END,
		D.DD_Title 'Title'
	FROM Calls A
		LEFT OUTER JOIN Lang B1
			ON A.Call_LST_QUEUE = B1.Lang_Id
		LEFT OUTER JOIN Lang B2
			ON A.Call_LST_CALLCAT = B2.Lang_Id
		LEFT OUTER JOIN Client C1
			ON A.Call_Client_ID = C1.Client_ID AND C1.Client_RessFlag = 0
		LEFT OUTER JOIN ivProdType E
			ON A.Call_ivProdType_ID = E.ivProdType_ID
		LEFT OUTER JOIN ivProdData F
			ON A.Call_ivProduct_ID = F.ivProdData_ProductID 
		LEFT OUTER JOIN Client C2
			ON A.Call_LastModifBy = C2.Client_ID AND C2.Client_RessFlag = 1
		LEFT OUTER JOIN Task G
			ON A.Call_ID = G.Task_Call_ID
		LEFT OUTER JOIN DataDescription D
			ON G.Task_Desc_DD_ID = D.DD_ID
	WHERE
		A.Call_LST_CALLSTAT <> 5515
		AND A.Call_LST_QUEUE in (6228, 7969)
		AND A.Call_DateEntered BETWEEN '$dateinf' AND '$datesup' 
		AND A.Call_HistoFlag IN ('$hf1','$hf2')
	ORDER BY A.Call_ID DESC
");
Pitié une idée, pour me dire que j'ai pas perdu ma journée