【发布时间】:2014-11-10 16:52:37
【问题描述】:
tblDailyProduction
+---------+------------+------------+------------+----------+----------+
| date | items | quantity| weight| wheatConsumed| |
+---------+------------+------------+------------+----------+----------+
tblCashBillbook
+---------+------------+------------+------------+----------+----------+
+---------+------------+------------+------------+----------+----------+
| date | bagWeight | totalBags |
+---------+------------+------------+------------+----------+----------+
SELECT CAST(tblDailyProduction.date AS DATE) as DateField,
SUM(tblDailyProduction.quantity * tblDailyProduction.weight)
AS totalProduct,SUM(tblCashBillbook.totalBags * tblCashBillbook.bagWeight)
AS totalIssued
FROM tblDailyProduction
left join tblCashBillbook on tblDailyProduction.date=tblCashBillbook.date
GROUP BY CAST(tblDailyProduction.date AS DATE)
我想使用JOIN 子句根据来自两个不同表的日期对数据进行分组。从tblDailyProduction 表中获取数据,但从tblCashBillBook 表中获取NULL 数据。
尝试了INNER、LEFT 和RIGHT 加入,但GROUP BY 子句存在问题。
【问题讨论】:
-
SQL Server 还是 MySQL?,选择您实际使用的那个。 “但是 GROUP BY 有问题”,你能解释一下是什么问题吗?
-
两张表的数据类型是什么? (不是显示的内容,因为可能不包括时间)是否包含时间组件;在这种情况下,您还需要在加入时添加日期?我怀疑是的,因为您在 select 和 group 中使用 cast by 考虑
LEFT JOIN tblCashBillbook on cast(tblDailyProduction.date as DATE)=cast(tblCashBillbook.date as DATE)然后如果您只想要两个表中日期匹配的记录,则内部联接。
标签: mysql sql sql-server database mysql-error-1064