从两个表创建摘要?

时间:2018-07-28 21:06:09

标签: mysql sql syntax

我有两个表格,我正在尝试创建一个摘要,其中包含每人应付款的总和,但是没有涉及到的广告素材ID。

Table 1:
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) NOT NULL,
  `Lname` varchar(255) NOT NULL,
  `phone` varchar(15) NOT NULL,
  `address` varchar(255) DEFAULT NULL,
  `city` varchar(255) NOT NULL,
  `state` char(2) NOT NULL,
  `zip` varchar(50) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `business_name varchar(255) DEFAULT NULL,

Second table:
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `C_ID` INT(10) UNSIGNED NOT NULL,
    `Amount_Due` DECIMAL(7 , 2 ) not null DEFAULT 0,
    `created_date` DATETIME NOT NULL,
    `closed_date` DATETIME default NULL,
    PRIMARY KEY (`id`)
)  ENGINE=INNODB DEFAULT CHARSET=LATIN1;

这就是我想要做的:

  • 我正在尝试对日期在18年5月1日至18年6月15日之间的数据进行汇总。

  • 每个人都有应得的金额

  • 具有以下别名:公司名称,电话号码,发票金额

我正在尝试测试我的代码,但出现错误:

SELECT Name,phone,SUM(Amount_Due) FROM test_customer,test_invoices 
WHERE created_date BETWEEN '2018-05-01' AND  "2018-06-15'

1 个答案:

答案 0 :(得分:1)

如果我的理解正确,则需要在非聚合函数列中使用JOIN而不是,CROSS JOIN)和GROUP BY

SELECT Name 'Customer Name',
      phone 'Phone number',
      SUM(i.Amount_Due) 'Amount due'
FROM test_customer c 
INNER JOIN test_invoices i ON C.id = i.C_ID
GROUP BY Name,phone

sqlfiddle