Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Sub TopAway()
- Dim Cnn As Object
- Dim Rst As Object
- Dim ConnectionString, SqlTextFile, SqlStatement As String
- Set Cnn = CreateObject("ADODB.Connection")
- Set Rst = CreateObject("ADODB.Recordset")
- Application.ScreenUpdating = False
- ThisWorkbook.Sheets("Summary").Range("A2:T3000").ClearContents
- ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server = 10.1.1.201; Database = cms; Uid = root; Pwd = something;"
- Cnn.Open ConnectionString
- Cnn.CommandTimeout = 900
- SqlTextFile = "C:UsersadamDesktopWORK FOLDERTony ProjectAnalysis ProjectsAway_No_StockDynamic_Away.sql"
- Debug.Print SqlTextFile
- Dim hFile As Long
- hFile = FreeFile
- Open SqlTextFile For Input As #hFile
- SqlStatement = Input$(LOF(hFile), hFile)
- Close #hFile
- Debug.Print SqlStatement
- Rst.Open SqlStatement, Cnn
- Sheets("Summary").Range("B3").CopyFromRecordset Rst
- End Sub
- SELECT
- GROUP_CONCAT(DISTINCT
- CONCAT("SUM(IF((part_id IN (265,302,647) OR notes REGEXP ('away|unfit|unavailable|bus away|night')) && WEEKOFYEAR(job_engineerdate) = '", WEEKOFYEAR(job_engineerdate) , "' , 1 ,0)) AS '", WEEKOFYEAR(job_engineerdate), "'")
- )
- INTO @answers
- FROM (
- SELECT DISTINCT (job_engineerdate)
- FROM job j
- ORDER BY (job_engineerdate) ASC
- ) A
- WHERE job_engineerdate >= CURDATE() - INTERVAL 112 DAY AND job_engineerdate <= CURDATE();
- SET @query = CONCAT("SELECT customer_name, garage_name, ", @answers, "
- FROM (
- SELECT c.customer_name, g.garage_name, j.id, jp.part_id, jn.notes, j.job_engineerdate
- FROM job j
- INNER JOIN vehicle v ON j.job_vehicleid = v.id
- INNER JOIN garage g ON v.garage_id = g.id
- INNER JOIN customer c ON g.customer_id = c.id
- INNER JOIN fault_type ft ON j.job_fault = ft.id
- INNER JOIN job_parts jp ON j.id = jp.job_id
- INNER JOIN part p ON p.id = jp.part_id
- INNER JOIN job_notes jn ON j.id = jn.job_id
- INNER JOIN users u ON j.job_engineer = u.id
- WHERE
- c.customer_group IN (13) AND
- j.deleted = 0
- AND j.job_engineerdate >= CURDATE() - INTERVAL 112 DAY
- GROUP BY
- v.vehicle_fleet_number, v.id, j.id, jp.part_id, jn.id
- ORDER BY customer_name, garage_name
- ) AS T
- GROUP BY customer_name, garage_name
- ORDER BY 18 DESC
- LIMIT 15")
- ;
- PREPARE stmt FROM @query;
- EXECUTE stmt;
- DEALLOCATE PREPARE stmt;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement