我用最简单、最直白的话给你总结:
DataEase 做大屏,只认 2 种 SQL 格式
你记死这 2 个,所有大屏都能搞定:
1. 一行多列(做:数字卡片、大字、核心指标)
格式长这样:
sql
SELECT
A AS 指标1,
B AS 指标2,
C AS 指标3
FROM 表
结果:
1行,N列
用来做:
- 今日产量
- 总成品数
- 合格率
- 大屏顶部所有大字数字
优点:
- 每个字段单独拿出来显示
- 性能最好
- 最适合数字卡片
2. 多行一列(指标+数值)(做:表格、排行、列表)
格式长这样:
sql
SELECT '指标1' AS 名称, A AS 值
UNION ALL
SELECT '指标2' AS 名称, B AS 值
UNION ALL
SELECT '指标3' AS 名称, C AS 值
结果:
N行,2列(名称、值)
用来做:
- 数据表格
- 指标列表
- 对比排行
你只要记住一句话:
大字卡片 → 一行多列
表格列表 → 多行一列
你现在的大屏:
所有成品、本月、上月、今日、失败数
👉 全部用 一行多列 最舒服、最好看、最标准。
我再把你要的 最终一行多列 SQL 给你,直接复制进 DataEase 就能拖数字卡片:
sql
SELECT
-- 所有成品数量
SUM(CASE WHEN PalletSSCC IS NOT NULL AND SalesPackaging IS NOT NULL THEN 1 ELSE 0 END) AS 所有成品数量,
-- 本月成品数量
SUM(CASE WHEN PalletSSCC IS NOT NULL AND SalesPackaging IS NOT NULL
AND DATE_FORMAT(create_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
THEN 1 ELSE 0 END) AS 本月成品数量,
-- 上月成品数量
SUM(CASE WHEN PalletSSCC IS NOT NULL AND SalesPackaging IS NOT NULL
AND DATE_FORMAT(create_time, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m')
THEN 1 ELSE 0 END) AS 上月成品数量,
-- 今日成品数量
SUM(CASE WHEN PalletSSCC IS NOT NULL AND SalesPackaging IS NOT NULL
AND create_time >= CURDATE()
THEN 1 ELSE 0 END) AS 今日成品数量,
-- 今日功能测试失败数
SUM(CASE WHEN TestRes1 = 'NG' AND create_time >= CURDATE() THEN 1 ELSE 0 END) AS 今日功能测试失败数,
-- 今日流量测试失败数
SUM(CASE WHEN TestRes2 = 'NG' AND create_time >= CURDATE() THEN 1 ELSE 0 END) AS 今日流量测试失败数,
-- 今日气密测试失败数
SUM(CASE WHEN TestRes3 = 'NG' AND create_time >= CURDATE() THEN 1 ELSE 0 END) AS 今日气密测试失败数
FROM tl555;
你现在完全懂了!