我有两张桌子,订单和订单项。我正在按日期制作销售报告,其中需要包括每个订单项目在每个日期的总成本价格和销售价格,以及每个订单在每个日期的总交付成本:
表:订单
orderid date deliverycost
1 2000-01-01 5
2 2000-01-01 3
3 2000-01-02 0
4 2000-01-02 4
表:orderitem
orderitemdid orderid costprice sellingprice
1 1 10 12
2 1 2 4
3 2 10 12
4 3 5 6
5 3 4 10
6 4 1 2
我正在寻找一个查询,它将提供以下输出:
date costprice sellingprice deliverycost
2000-01-01 22 28 8
2000-01-02 10 18 4
我尝试了以下SQL:
SELECT
SUM(`orderitem`.`costprice`) AS `costprice`,
SUM(`orderitem`.`sellingprice`) AS `sellingprice`,
SUM(`order`.`delivery`) AS `delivery`,
DATE(`order`.`date`) AS `date`,
FROM
`order`
INNER JOIN
`orderitem`
ON
(`order`.`orderid` = `orderitem`.`orderid`)
GROUP BY
`date`
ORDER BY
`date`
问题是,我最终得到的交货价格乘以订单项目的数量,因此我希望对订单
进行求和()<代码>交付在连接发生之前。
可能与引号使用不当有关列名不要使用单引号,但需要时使用反引号
SELECT
SUM(`orderitem`.`costprice`) as costprice,
SUM(`orderitem`.`sellingprice`) as sellingprice,
SUM(`order`.`delivery`) as delivery,
DATE(`order`.`confirmdate`) as `date`,
FROM `order`
INNER JOIN `orderitem` ON `order`.`orderid` = `orderitem`.`orderid`
GROUP BY `date`
ORDER BY `date`
在您的情况下,还应该避免回退,因为您没有单独的列名和保留字
SELECT
SUM(orderitem.costprice) as costprice,
SUM(orderitem.sellingprice) as sellingprice,
SUM(order.delivery) as delivery,
DATE(order.confirmdate) as date,
FROM order
INNER JOIN orderitem ON order.orderid = orderitem.orderid
GROUP BY date
ORDER BY date
为了避免笛卡尔积,可以加入聚合表
SELECT
SUM(t.costprice) as costprice,
SUM(t.sellingprice) as sellingprice,
SUM(order.delivery) as delivery,
DATE(order.confirmdate) as date,
FROM order
INNER JOIN (
SELECT
orderitem.orderid
SUM(orderitem.costprice) as costprice,
SUM(orderitem.sellingprice) as sellingprice
from orderitem
group by orderitem.orderid
) t ON order.orderid = t.orderid
GROUP BY date
ORDER BY date
我想从short_name(国家名称)、name(州表)或region_name的任何可用数据中选择post_id。对region_name而不是short_name(国家名称),name(州表)执行以下查询,结果为真。 请告诉我,我哪里弄错了!
问题内容: 我有两个mysql表-销售表: 和一个项目表: sales表包含每个 ItemID的 多个记录-每个 SaleWeek一个 。我想通过加入两个表来选择出售的所有商品,如下所示: 但是,这将基于每个 SaleWeek* 的多个条目返回多个 ItemId 值。我可以做一个单独的选择,只返回一个 ItemID 吗?-我不想查询最新的 SaleWeek, 因为有些项目可能没有最新的
我有一个表,其中有多个条目对应一个FK。我想找出没有某些条目的FK值,例如 我的表有以下条目。 现在,我想从这个表中过滤所有没有ab3或ab4的FK。当然,我期望不同的值,即在这种情况下,结果将是FK=100和200。 我使用的查询是 当然,此查询不会获取所需的结果。
问题内容: 我有一个查询,可以从弹性索引中获取一些用户发布的数据。我对该查询感到满意,尽管我需要使其返回具有唯一用户名的行。当前,它显示用户的相关帖子,但是可能显示一个用户两次。 我已经阅读了有关聚合的内容,但了解得不多(也尝试使用aggs但也没有用)....非常感谢您的帮助 问题答案: 您将需要使用术语汇总来获取所有唯一身份用户,然后使用热门匹配来针对每个用户仅获取一个结果。这就是它的样子。 在
问题内容: 我被困住了…一个带有“值”和“数据类型”列的“数据”表填充有发动机负载和车辆速度,每个记录都标有日期,时间,经纬度,长时戳。我想查询车辆行驶时发动机负载是否超过10%(例如,速度> 0)。我可以创建查询来选择发动机负载,也可以创建查询来选择车速,但是当> 10%并且车辆移动时,如果日期,时间和时间长,如何创建查询来选择发动机负载?相等吗? 此查询不起作用,但是它提供了我要尝试执行的操作
问题内容: 我正在尝试检索字段中所有唯一值的计数。 示例SQL: 如何在CodeIgniter内部进行这种查询? 我知道我可以使用,并编写自己的SQL查询,但是我还有其他要求。如果我使用,我必须自己编写整个查询。 问题答案: 然后 应该走很长的路要走。