[英]MySql all rows with sum of one column
我嘗試創建一個查詢以選擇表中所有行的總和為一列名newtotal
這是我的查詢
SELECT *
FROM tbl_activities
,(SELECT SUM(db_newtotal) as total FROM tbl_activities) {$sql}
{$ sql}是column_name =從搜索形式輸入的地方
但是我有這個錯誤:
每個派生表必須具有自己的別名
我嘗試這樣做:
SELECT *
FROM tbl_activities
,(SELECT SUM(db_newtotal) as total FROM tbl_activities) as Table {$sql}
但是我有這個錯誤:
您的SQL語法有誤; 在第1行的'Table where db_projectname ='Barbara Bui'表附近使用正確的語法,請檢查與您的MySQL服務器版本相對應的手冊。
我打印查詢,這是輸出
SELECT *
FROM tbl_activities
,(SELECT SUM(db_newtotal) as total FROM tbl_activities) as Table
where db_projectname='Barbara Bui'
我想要的輸出應該是這樣的:ll用項目名name ='Barbara Bui'記錄的總和為newtotal
projectname location Cost
Barbara Bui verdun 100
Barbara Bui kaslik 200
Barbara Bui achrafieh 500
Total 800
詢問
SELECT * FROM tbl_activities
union all
select db_id,db_category,db_subcategory,db_taskname,db_predecessors,db_unit,db_qty,db_wo,db_duration,db_startdate,db_enddate,db_asd,db_add,db_transferredto,db_prb,db_anotes,db_aduration,db_projectname,db_A,db_AA,db_AAA,db_cost,db_status,db_room,db_floor,db_date,sum(db_newtotal) as total from tbl_activities
{$sql}
錯誤是因為table
是保留關鍵字。
您要像這樣使用UNION ALL
:
select projectname, location, cost
from tbl_activities {$sql}
union all
select 'Total', null, sum(cost)
from tbl_activities {$sql};
使用參數應用where子句,它將變為:
select projectname,
location,
cost
from tbl_activities {$sql}
union all
select 'Total',
null,
sum(cost)
from tbl_activities {$sql}
如果您在UNION ALL的第一部分中有更多列,請確保在第二個選擇中所有這些空值都包含在內。
select db_id, db_category, db_subcategory, db_taskname, db_predecessors, db_unit, db_qty, db_wo, db_duration, db_startdate, db_enddate, db_asd, db_add, db_transferredto, db_prb, db_anotes, db_aduration, db_projectname, db_A, db_AA, db_AAA, db_cost, db_status, db_room, db_floor, db_date, db_newtotal
from tbl_activities {$sql}
union all
select null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, sum(db_newtotal)
from tbl_activities {$sql}
在大多數RDMS中,表是保留字,因此您不能將其用作別名,請嘗試將其更改為
SELECT * FROM tbl_activities,(SELECT SUM(db_newtotal) as total FROM tbl_activities) as myTable {$sql}
看看是否可行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.