:私はWHERE addedby = 1を持っているところMySQLの派生表の問題
AddedById,AddedByName,HoursWorked,CurrentYearlyFlexiAvailable
はしかし、私はこれを交換したいのですがフィールド名AddedById全体的なクエリとしてこの値をハードコードしたくないので、複数の人が返されますので、私はこの値をrpt_timesheet_dataビューから取得したいと考えています。 CurrentYearlyFlexiAvailableフィールドは、彼らがTTL
として SELECT SUM(TTL)間と から(SELECT SUM(働いていた)-420 FROM計算を行うことにより、これまでに現在の年のために残っているどのくらいの時間が私に言ってする必要がありますSELECT AddedById,AddedByName,SUM(HoursWorked) AS HoursWorked
,(SELECT SUM(ttl) - (
SELECT SUM(worked)
FROM vwtimesheet
WHERE addedby=AddedById
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND activityid=3192
GROUP BY addedby) AS flexihours
FROM (
SELECT SUM(worked)-420 AS ttl
FROM vwtimesheet
WHERE addedby=1 <!--HERE IS THE ISSUE
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND projectid<>113 AND activityid<>3192
GROUP BY entrydate
HAVING SUM(worked)>420
) AS s) AS CurrentYearlyFlexiAvailable
FROM rpt_timesheet_data
WHERE entrydate BETWEEN '2017-04-02' AND '2017-04-13 23:59:59'
AND ActivityId=3192
GROUP BY AddedById,AddedByName
ORDER BY AddedByName
が、私は得続ける:
エラーコード:1054不明な列 'AddedById' 'where句'
だけその1つの場所。私はこれを並べ替えるためにさまざまなクエリを試したが、それを把握することはできません。私がしたいことを私の頭の中で見ることができます。
ここでは、1人のユーザーの結果を返すという点で非常に似ているクエリです。
SELECT addedbyname, SUM(ttl) -
(SELECT SUM(worked)
FROM vwtimesheet
WHERE addedby=1
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND activityid=3192
GROUP BY addedby) AS CurrentYearlyFlexiAvailable
,(SELECT SUM(worked) FROM vwtimesheet
WHERE addedby=1
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND activityid=3192
GROUP BY addedby) AS flexiused
,(SELECT sum(worked) FROM vwtimesheet
WHERE addedby=1
AND entrydate BETWEEN DATE_FORMAT(NOW() ,'%Y-%m-01') AND curdate()
AND activityid=3192
GROUP BY addedby) as fleximonthused
FROM (SELECT entrydate,addedbyname,SUM(worked)-420 AS ttl FROM vwtimesheet
WHERE addedby=1
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND projectid<>113
AND activityid<>3192
GROUP BY entrydate,addedbyname
HAVING SUM(worked)>420
) AS s
おそらく別の質問をする必要があります。または少なくとも真剣にこれを編集してください。サンプルデータ、望ましい結果を提供し、実装しようとしているロジックを記述します。 –
内部クエリでは、 'GROUP BY'を適用するフィールドを含める必要があります。私はあなたのコードを修正し、まもなく回答を投稿しようとします。 – toonice
この記事を読むと役立つことがあります。https://meta.stackoverflow.com/questions/271055/tips-for-asking-a-good-structured-query-language-sql-question/271056#271056 –