0

多くのテーブルを結合する sql クエリを作成しましたが、テーブルの 1 つの列のみをグループ化したいと考えています。そして、これが私のslqクエリです。

select us.Username, ro.Role, ca.CartName, ca.Date from Users us
left join Roles ro on ro.RoleID = us.RoleID
left join Carts ca on ca.UserId = us.ID
group by ca.Date;

そして、ここにテーブルの破壊があります:

//テーブル ユーザー

ID           Username           RoleID
1            Tri                1
2            Lan                1
3            Nhu                1
4            Lac                1
5            Linhchi            2

//テーブルの役割

RoleID       Role               Description
1            Admin              Someone in administrator board
2            User               Someone who has an account
3            Guess              Someone who just view the website

//テーブルカート

CartId       CartName           CartDescription              UserId           Date
1            Computer           Computer CMS                 1                2/11/2013 12:00:00 AM
2            Desk               Writing Desk                 2                2/11/2013 12:00:00 AM
3            Print Paper        Company's print paper        3                3/11/2013 12:00:00 AM
4            Headphone          Small headphone              3                2/11/2013 12:00:00 AM
5            MP3Player          MP3Player Portable           4                4/11/2013 12:00:00 AM

//クエリ実行後のDesireTable

Username         Role          CartName              Date
Tri              Admin         Computer              2/11/2013 12:00:00 AM
Lan              Admin         Desk                  2/11/2013 12:00:00 AM
Lan              Admin         Headphone             2/11/2013 12:00:00 AM
Nhu              Admin         Print Paper           3/11/2013 12:00:00 AM
Lac              Admin         MP3Player             4/11/2013 12:00:00 AM

したがって、結果は「カート」テーブルの「日付」列でグループ化する必要があります。しかし、クエリはエラーメッセージ「Column 'Carts.Date' is invalid in the select list because it is not included in a aggregate function or the GROUP BY clause.」を生成しました。この問題を解決するには、あなたの助けが必要です。

4

1 に答える 1