4

質問するのは初めてなので、これが簡単な質問である場合はお詫び申し上げます。結果をレポートにプルスルーしているため、この質問はMicrosoftQueryに関連していることに注意してください。

現在、1から6までの整数値である1つの列を含む、いくつかの列を持つテーブルがあります。列の値が偶数か奇数かに基づいてこの列でグループ化しようとしていますが、よくわかりません。私の知識を前提としてこれを達成する方法(私がこれを必要とする理由についての少しの背景:私が使用しているテーブルは、日中シフトの奇数値と夜シフトの偶数値を持つことを参照しているシフト列のタイムシートエントリに関連しています)。誰かが助けることができればこれは素晴らしいでしょう。現在、私は次のコードを持っています:

SELECT 
   PRTH.PostDate, HRRM.LastName, HRRM.FirstName, 
   Sum(PRTH.Hours) AS 'Sum of Hours', 
   (PRTH.Shift Mod 2) As 'Night Shift'
FROM 
   Viewpoint.dbo.HRRM HRRM, Viewpoint.dbo.PRTH PRTH
WHERE 
   PRTH.Employee = HRRM.PREmp AND PRTH.JCCo = HRRM.PRCo
GROUP BY 
   PRTH.PostDate, HRRM.LastName, HRRM.FirstName, Night Shift

これModを定義する方法と、group by関数でこれを使用する方法がわからないため、問題が発生している関数です。

前もって感謝します

4

1 に答える 1

3

これがあなたが探しているもののように聞こえます-%演算子を使用してModを実行します:

select a % 2, sum(b)
from yourtable
group by a % 2

凝縮されたSQLフィドルデモ

これをクエリに適用するには、次のことを試してください。

SELECT PRTH.PostDate, HRRM.LastName, HRRM.FirstName, 
    Sum(PRTH.Hours) AS 'Sum of Hours', (PRTH.Shift % 2) As 'Night Shift'
FROM Viewpoint.dbo.HRRM HRRM
    INNER JOIN Viewpoint.dbo.PRTH PRTH
        ON PRTH.Employee = HRRM.PREmp AND PRTH.JCCo = HRRM.PRCo
GROUP BY PRTH.PostDate, HRRM.LastName, HRRM.FirstName, PRTH.Shift % 2

また、Joinsを構文に置き換えたことにも注意してくださいINNER JOIN。これが望ましいです。詳細については、この投稿を参照してください(https://stackoverflow.com/a/1018825/1073631

于 2013-03-27T00:38:46.600 に答える