mysql - 选择不同的寿
问题描述
我被这个问题困扰了好几天,仍然想不出解决方案。也许我只是让它太复杂了。所以我的查询看起来像这样。
SELECT distinct Cast(Table1.Date as Date) AS 'Date', Concat(Round(SUM((ISNULL(Price.Morning,0) + ISNULL(Price.Day,0) + ISNULL(Price.Evening,0))*Tickets.Count),2),' €') AS 'Total'
FROM Price,Tickets,Table1
WHERE Tickets.Price_ID = Price.Price_ID AND
Tickets.Table1_ID = Table1.Table1_ID
GROUP BY Date
;
查询应显示不同的日期,并且应显示在特定日期获得的总 SUM。 如您所见,仍有匹配的日期
编辑。我不知道我是否正确理解了批评,但我应用了这些更改。
SELECT distinct Cast(Tabl1.Date as Date) AS 'Date', Concat(Round(SUM((ISNULL(Price.Morning,0) + ISNULL(Price.Day,0) + ISNULL(Price.Evening,0)))* Tickets.Count),2),' €') AS 'Total' FROM Table1 JOIN Tickets ON Tickets.Table1_ID = Table1.Table1_ID JOIN Price ON Tickets.Price_ID = Price.Price_ID GROUP BY Date ;
而且我也明白我需要为解决方案提供更多信息。所有..Concat(Round(SUM((ISNULL(Price.Morning,0) + ISNULL(Price.Day,0) + ISNULL(Price.Evening,0))*Tickets.Count),2),'€' ) AS 'Total' .. 是必要的,因为在数据库中有 Null 值,这就是为什么我使用 ISNULL 函数和 0 以防它为 NULL,否则它会中断所有计算。您可以在此处查看该表:我编辑了列名,以便您看到(表本身使用不同的语言) (不需要没有名称的列)
解决方案
使用显式连接而不是逗号分隔的旧连接方法,并使用子查询来获取 total 的格式。无需区分
select 'Date', concat(total,' €') from
(
SELECT Cast(Table1.Date as Date) AS 'Date',
SUM(Price.Morning+Price.Day+Price.Evening) as total
FROM Price join
Tickets on Tickets.Price_ID = Price.Price_ID
join Table1 on Tickets.Table1_ID = Table1.Table1_ID
GROUP BY Date
) as t
推荐阅读
- reactjs - reactjs中的文本字段更新问题
- sql-server - 将数据库作为 SQL Server 2016 中的架构还原到另一个数据库?
- haskell - 这个位置的'>>='是什么意思(haskell)
- pip - 无法安装ansible
- android - 如何从我的 ViewModel 类访问我的服务类?
- ubuntu - 如何在不使用 Auditd 或默认 Ubuntu 安装的情况下在 Ubuntu 中进行流程审核?
- git - Git中的版本编号文件夹是不好的做法吗?
- r - 快速单击操作按钮时,observeEvent 和 update*Input 之间的竞争
- c# - C# await 关键字是否会导致函数调用阻塞?
- r - How to multiply variables inplace in a dataframe of a long format?