使用下面的MySQL查询,我创建了一个数据透视表,这正是我正在寻找的.但是,我想用实际描述替换NULL值,例如SubTotal和GrandTotal.这是我的PHP输出上显示的数据透视表格式(希望格式化有点清晰!).
Name Division 1 Division 2 Division 3 Division 4 Location
Name 1
Name 2
Name 3
NULL Total Total Total Total
Name 4
Name 5
NULL Total etc
NULL Column Grand Total
Run Code Online (Sandbox Code Playgroud)
这是我用来生成表的查询.在研究了这个问题后,CASE功能似乎就是这样.但是,当我将两个CASE行添加到下面的查询中时,它似乎不想工作.返回的mysql_error表示"GROUPING函数不存在".
SELECT
CASE WHEN (GROUPING(name)=1) THEN 'MainTotal' ELSE name END AS name,
CASE WHEN (GROUPING(location)=1) THEN 'SubTotal' ELSE location END AS location,
name AS Name,
SUM(IF(division='OEM',totalHours,NULL)) AS OEM,
SUM(IF(division='A/M',totalHours,NULL)) AS AM,
SUM(IF(division='SKF',totalHours,NULL)) AS SKF,
SUM(IF(division='RE',totalHours,NULL)) AS RE,
location as Location
FROM $databasetable GROUP BY location, name
WITH …Run Code Online (Sandbox Code Playgroud) 我有一个正确的查询,可以为公司A提取一系列目标和工作总时间.我想为公司B运行完全相同的查询,并在一个共同日期加入它们,这恰好按周分组.我目前的查询:
SELECT * FROM (
SELECT org, date,
( SELECT SUM( target ) FROM target WHERE org = "companyA" ) AS companyA_target,
SUM( hours ) AS companyA_actual
FROM time_management_system
WHERE org = "companyA"
GROUP BY WEEK( date )
ORDER BY DATE
) q1
LEFT JOIN (
SELECT org, date,
( SELECT SUM( target ) FROM target WHERE org = "companyB" ) AS companyB_target,
SUM( hours ) AS companyB_actual
FROM time_management_system
WHERE org = "companyB"
GROUP BY WEEK( date )
ORDER …Run Code Online (Sandbox Code Playgroud) 如何使用此插件开发一个工作示例:HTML5 JavaScript在Chrome中粘贴图像数据
作者提出了一个很好的例子,看起来它符合我们的目的.我不熟悉创建一个jQuery插件.
目标是使用此插件将剪贴板图像粘贴到富文本编辑器(如TinyMCE)中.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PASTE IMAGE</title>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.18.custom.min.js"></script>
<script type="text/javascript">
// Created by STRd6
// MIT License
// jquery.paste_image_reader.js
(function($) {
var defaults;
$.event.fix = (function(originalFix) {
return function(event) {
event = originalFix.apply(this, arguments);
if (event.type.indexOf('copy') === 0 || event.type.indexOf('paste') === 0) {
event.clipboardData = event.originalEvent.clipboardData;
}
return event;
};
})($.event.fix);
defaults = {
callback: $.noop,
matchType: /image.*/
};
$.fn.pasteImageReader = function(options) {
if (typeof options === "function") { …Run Code Online (Sandbox Code Playgroud) 我的MySQL数据库有以下列标题:
month, typeOfWork, totalHours
Run Code Online (Sandbox Code Playgroud)
我有兴趣根据typeOfWork和month显示结果.例如,所有typeOfWork条目将显示在左侧的第一列中,并且每个字段将在每个列的指定月份中累计该特定typeOfWork.因此,我的SQL数据透视表语句目前是:
SELECT
IFNULL(typeOfWork, 'Total') AS TypeOfWork,
SUM(IF(month='JAN',totalHours,NULL)) AS JAN,
SUM(IF(month='FEB',totalHours,NULL)) AS FEB,
SUM(IF(month='MAR',totalHours,NULL)) AS MAR,
SUM(IF(month='APR',totalHours,NULL)) AS APR,
SUM(IF(month='MAY',totalHours,NULL)) AS MAY,
SUM(IF(month='JUN',totalHours,NULL)) AS JUN,
SUM(IF(month='JUL',totalHours,NULL)) AS JUL,
SUM(IF(month='AUG',totalHours,NULL)) AS AUG,
SUM(IF(month='SEP',totalHours,NULL)) AS SEP,
SUM(IF(month='OCT',totalHours,NULL)) AS OCT,
SUM(IF(month='NOV',totalHours,NULL)) AS NOV,
SUM(IF(month='DEC',totalHours,NULL)) AS DEC
FROM $databasetable GROUP BY typeOfWork
WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)
我目前收到指定最后一行的语法错误(从'DEC到ROLLUP').我的困惑来自于我在我的脚本中简单地从另一个工作数据透视表中调整了这个表.我认为差异可能在于我的两个要求(sum totalHours,其中月份等于列名称,而typeOfWork等于第一列中的typeOfWork).我想知道我的IF语句是否需要AND条款?
任何人都可以通过此数据透视表向我指出正确的方向吗?这将不胜感激.谢谢!