[英]SQL query…I need to insert 2 values from same column of table1 to 2 different columns of table2
[英]I need two different column values based on different condition from same table
標題
我想每天獲取每個“儲罐ID”的第一條記錄的總和,以及每天明智的“收據”的總和,整個數據將在特定月份受到限制
SELECT
DATE(t.DATE) AS 'Date',
SUM(t.in_stock) AS 'Opening Stock',
SUM(receipt) AS 'Receipt',
SUM(in_stock + receipt)AS 'Total Stock'
FROM diesel_tank_details t
WHERE NOT EXISTS (
SELECT
1
FROM diesel_tank_details t2
WHERE
DATE(t2.DATE) = DATE(t.DATE)
AND t2.tank_id = t.tank_id
AND t2.dt_id < t.dt_id
)
AND YEAR(DATE) = 2019
AND MONTH(DATE) = 7
GROUP BY DATE(DATE)
Tank_ID In_Stock Receipt Date
1 1000 1000 2019-07-10 00:28:33
2 2000 2000 2019-07-10 00:28:40
3 3000 3000 2019-07-10 00:28:47
1 300 0 2019-07-10 00:32:40
1 250 0 2019-07-15 15:15:06
3 2500 0 2019-07-15 15:15:37
2 1800 0 2019-07-15 15:35:49
3 2200 0 2019-07-15 16:13:17
1 500 250 2019-07-15 16:13:51
2 2000 200 2019-07-15 16:13:57
3 3000 800 2019-07-15 16:14:03
Date Opening Stock Receipt Total Stock
2019-07-10 6000 6000 12000
2019-07-15 4550 1250 4550
查詢 :
SELECT DATE(t.Date) as 'Date',
SUM(t.In_Stock) as 'Opening Stock',
SUM(t.Receipt) as 'Receipt',
SUM(t.In_Stock + t.Receipt) as 'Total Stock'
FROM diesel_tank_details t
WHERE AND YEAR(t.Date) = 2019
AND MONTH(t.Date) = 7
GROUP BY DATE(t.Date)
只需包括其他過濾器即可。 我不知道DT_ID
做什么,所以我只是將其刪除。 但基本上您只是想按天分組。
由於需要不同的庫存和收貨條件,因此必須為每種情況匯總不同的行:
select s.day, s.`Opening Stock`, r.Receipt,
(s.`Opening Stock` + s.Receipt) `Total Stock`
from (
select g.day, sum(t.in_stock) `Opening Stock`, sum(t.receipt) receipt
from diesel_tank_details t inner join (
select date(date) day, tank_id, min(date) mindate
from diesel_tank_details
where in_stock <> 0
group by date(date), tank_id
) g on g.tank_id = t.tank_id and g.mindate = t.date
group by g.day
) s inner join (
select g.day, sum(t.receipt) Receipt
from diesel_tank_details t inner join (
select date(date) day, tank_id, min(date) mindate
from diesel_tank_details
where receipt <> 0
group by date(date), tank_id
) g on g.tank_id = t.tank_id and g.mindate = t.date
group by g.day
) r on r.day = s.day
參見演示 。
結果:
| day | Opening Stock | Receipt | Total Stock |
| ---------- | ------------- | ------- | ----------- |
| 2019-07-10 | 6000 | 6000 | 12000 |
| 2019-07-15 | 4550 | 1250 | 4550 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.