set ansi_paddings etc [SQLSERVER] - SQL/NoSQL - Programmation
Marsh Posté le 21-12-2010 à 16:37:57
Salut, je me retrouve devant un problème étrange. Soit cette query:
SELECT min(d.date) AS date, min(d.week_day) week_day, d.year, d.month, d.day, e1.event_options AS [type], COUNT(DISTINCT e1.visitor_id) AS [shown], COUNT(DISTINCT (e1.visitor_id + e2.visitor_id)) AS [clicked], round(cast(COUNT(DISTINCT (e1.visitor_id + e2.visitor_id)) AS float) / COUNT(DISTINCT e1.visitor_id) * 100 ,2) AS [click_rate], COUNT(DISTINCT (e1.visitor_id + e3.visitor_id)) AS [formul2], COUNT(DISTINCT (e1.visitor_id + e4.visitor_id)) AS [formul7], COUNT(DISTINCT (e1.visitor_id + e3.visitor_id)) + COUNT(DISTINCT (e1.visitor_id + e4.visitor_id)) AS [total], round(cast(COUNT(DISTINCT (e1.visitor_id + e3.visitor_id)) + COUNT(DISTINCT (e1.visitor_id + e4.visitor_id)) AS float) / COUNT(DISTINCT e1.visitor_id) * 100 , 2) AS [conversion_rate] FROM LOCALDB.dbo.l_dates d LEFT JOIN CLIENTDB.dbo.events e1 (NOLOCK) ON CONVERT (varchar(10), d.date, 102) = CONVERT (varchar(10), e1.date, 102) LEFT JOIN CLIENTDB.dbo.events e2 (NOLOCK) ON e1.visit_id = e2.visit_id AND e2.event_name = 'popin_social_kwartaal' AND e2.event_status = 'completed' LEFT JOIN CLIENTDB.dbo.events e3 (NOLOCK) ON e1.visitor_id = e3.visitor_id AND e3.event_options = 'formul2' AND e3.event_status = 'step5' AND e3.date > e1.date AND CONVERT (varchar(10), e1.date, 102) = CONVERT (varchar(10), e3.date, 102) LEFT JOIN CLIENTDB.dbo.events e4 (NOLOCK) ON e1.visitor_id = e4.visitor_id AND e4.event_options = 'formul7' AND e4.event_status = 'step5' AND e4.date > e1.date AND CONVERT (varchar(10), e1.date, 102) = CONVERT (varchar(10), e4.date, 102) WHERE e1.event_status = 'onload' AND d.date BETWEEN '2010-12-01' AND '2010-12-20' AND e1.event_name = 'popin_social_kwartaal' GROUP BY d.year, d.month, d.day, e1.event_options ORDER BY d.year, d.month, d.day, e1.event_options
je ne clean pas car je ne sais pas d'où ça vient, peut-être des NOLOCK... Si je lance ça dans SQL Studio, j'ai mes données, pas de soucis. Maintenant si je la lance à partir de PHP les données n'ont absolument rien n'à voir. En trifouillant le code, j'ai trouvé ceci:
$sql = 'set quoted_identifier on;'; $sql .= 'set ansi_warnings on;'; $sql .= 'set ansi_padding on;'; $sql .= 'set ansi_nulls on;'; $sql .= 'set concat_null_yields_null on'; $result = parent::query($sql);
Et effectivement, quand je lance ça avant ma grosse query, j'ai les mêmes résultats. Une explication ?
Marsh Posté le 30-12-2010 à 17:39:49
up
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 21-12-2010 à 16:37:57
Salut,
je me retrouve devant un problème étrange.
Soit cette query:
je ne clean pas car je ne sais pas d'où ça vient, peut-être des NOLOCK...
Si je lance ça dans SQL Studio, j'ai mes données, pas de soucis.
Maintenant si je la lance à partir de PHP les données n'ont absolument rien n'à voir.
En trifouillant le code, j'ai trouvé ceci:
Et effectivement, quand je lance ça avant ma grosse query, j'ai les mêmes résultats.
Une explication ?