我有一个表格,其结构如下。无法找出自我加入查询
+-----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| linq_order_num | char(32) | NO | PRI | NULL | |
| order_status_id | int(11) | YES | MUL | NULL | |
| order_id | varchar(100) | YES | | NULL | |
| item_name | varchar(120) | YES | | NULL | |
| item_cost | float | YES | | NULL | |
| custmer_id | int(11) | YES | MUL | NULL | |
| order_date_time | datetime | YES | | NULL | |
| order_category | varchar(120) | YES | | NULL | |
| ordered_by | int(11) | YES | MUL | NULL | |
| linq_shipping_cost | float | YES | | NULL | |
| website_shipping_cost | float | YES | | NULL | |
| total_cost | float | YES | | NULL | |
| advance_amount | float | YES | | NULL | |
| website | varchar(120) | YES | | NULL | |
| other | varchar(120) | YES | | NULL | |
| rvn | int(11) | YES | | NULL | |
| received_date | datetime | YES | | NULL | |
| delivered_date | datetime | YES | | NULL | |
| store_id | int(11) | YES | MUL | NULL | |
+-----------------------+--------------+------+-----+---------+-------+
因此,每天我都需要找到总订单成本。我可以通过使用此查询来获得它。
select sum(total_cost), date_format(order_date_time,"%Y-%m-%d") from
order_item group by date_format(order_date_time,"%Y-%m-%d")
此外,我需要在交付日期支付的总剩余金额。
select sum(total_cost-advance_amount),date_format(delivered_date,"%Y-%m-%d")
from order_item group by date_format(delivered_date,"%Y-%m-%d")
并非所有的日子,订单会发生,而不是所有的日子交付将happen.If有一天,没有订单的那一天的总成本应显示为零,并显示总剩余量应该是(total_cost-advance_amount)的总和。
有没有办法将上述两个查询合并到一个查询中并得到结果?
所以总结某一天d: 我需要的总和(TOTAL_COST)其中ordered_date_time = d, 我需要的总和(TOTAL_COST -advance_amount)其中DELIVERED_DATE = d 基本上在寻找这样一个表:
Date Total Cost Total Delivery Amounts
d 500 2000
d1 0 900
d2 900 0
我试过使用子查询。问题是,它不会显示D1的情况下,如果是这一天的总成本为0。
查询:
select
date_format(order_date_time,"%Y-%m-%d") date,
sum(total_cost) total,
sum(advance_amount) advance_amount,
IFNULL((select sum(total_cost-advance_amount)
from order_item a
where date_format(a.delivered_date,"%Y-%m-%d") = date_format(d.order_date_time,"%Y-%m-%d")),0) delivery_amount
from order_item d
group by date_format(order_date_time,"%Y-%m-%d"), delivery_amount
将来不要用'describe'来处理你的表模式。使用'show create table order_item'。描述对任何人来说都是无用的 – Drew