我有一個表格,其結構如下。無法找出自我加入查詢
+-----------------------+--------------+------+-----+---------+-------+
| 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