讓我開始說我不是一個sql專家或一個jasper-reports專家,但是我試圖生成一個報告,顯示誰是由公司登錄到我的項目中的客戶每月。我也知道,我正在設計查詢,看看未來1個月,以便我有數據處理公司註冊創建客戶端或2的機會,然後不登錄或執行任何操作。MySQL幫助加入表格來製作一個jasper ireport
這就是我想要返回的數據看起來像:
Date Company Client Client_ID Authentications Unique_Users
2016-may Company-A client-1 1 24 1
2016-may Company-A client-2 2 10 2
2016-may Company-A client-3 3 0 0
2016-June Company-A client-1 1 0 0
2016-June Company-A client-2 2 0 0
2016-June Company-A client-3 3 0 0
我有這樣的查詢將返回日期,公司名稱,客戶名稱,客戶端ID,auths中和獨特的用戶幾個月來的行動發生在這個查詢中,留下沒有認證的行。
SELECT
DATE_FORMAT(rq.requestTime, '%Y-%M') AS Date,
company.name AS Company,
client.name AS Client,
client.id AS client_id,
COUNT(rq.id) AS Authentications,
COUNT(DISTINCT rq.personguid) AS Unique_Users
FROM
company JOIN CLIENT ON company.id = client.company_id
LEFT JOIN request_queue rq ON rq.clientid = client.id
WHERE
company.id = 19
AND rq.status = 'complete' AND rq.request_type LIKE "%authorize%"
AND MONTH(rq.requestTime) >= MONTH("2016-05-01")
AND MONTH(rq.requestTime) <= MONTH("2016-06-01")
GROUP BY
client_id, Date
ORDER BY Date ASC, client_id ASC;
這將返回類似這樣的東西,因爲有些客戶還沒有在五月登陸,六月有沒有記錄呢,基本上沒有request_queue數據沒有行:
Date Company Client Client_ID Authentications Unique_Users
2016-may Company-A client-1 1 24 1
2016-may Company-A client-2 2 10 2
在這一點上,我想出了這個。
SELECT
dateTable.mydate AS Date,
clientTable.ClientName AS Client,
clientTable.CompanyName AS Company,
clientTable.client_id AS Client_ID
FROM
(SELECT
client.name AS ClientName,
client.id AS client_id,
company.name AS CompanyName
FROM
company JOIN CLIENT ON company.id = client.company_id
WHERE company.id = 19) clientTable
JOIN
(SELECT
DATE_FORMAT(temp.thedate,'%Y-%M') AS mydate,
temp.thedate AS theDate FROM (
SELECT
DATE_ADD("2016-05-01", INTERVAL u.i MONTH) AS thedate
FROM i AS u ORDER BY thedate) temp
WHERE temp.thedate <= "2016-06-01") dateTable;
這給了我一個沒有request_queue數據的日期,公司名稱,客戶端名稱和客戶端ID的表。
此表是這樣的:
Date Company Client Client_ID
2016-may Company-A client-1 1
2016-may Company-A client-2 2
2016-may Company-A client-3 3
2016-June Company-A client-1 1
2016-June Company-A client-2 2
2016-June Company-A client-3 3
是否有辦法將這些數據相結合,得到位於這個帖子頂圖表?
附加信息: 目標是將我的查詢結果傳遞給jasper報表設計器ireport。我正在使用這些數據創建一個交叉表,頂部的日期和左側的客戶端以及交叉行中的認證。
自從大學幾年以前,我還沒有碰過sql。任何想法或指導將不勝感激。
謝謝,這完美的作品。我一整晚都在爲此工作。與工會,聯合會和團體一起玩,只是無法做到。 – ChoklatStu