0

目標: 誕生日を保存できる Windows Phone アプリに取り組んでいます。しかし、Windows Phone では 50 個を超えるリマインダーを保存することはできないため、私がやろうとしていることは次のとおりです。

次の 50 の誕生日のリストを取得したい - DAYS. たとえば、次の 50 回の誕生日がすべて同じ日に当たる場合、1 日に 50 回のリマインダーを作成するのではなく、50 回の誕生日すべてに対して 1 回のリマインダーを作成したいだけなので、このリストは明確にする必要があります。

クエリのこの部分は、次の誕生日を作成します (誕生日がすでに過ぎている場合は、来年の誕生日を作成します)。

CASE WHEN strftime('%m-%d', Bday) < strftime('%m-%d', 'now')
THEN strftime('2015-%m-%d', Bday)
ELSE strftime('2014-%m-%d', Bday)
END AS Bday

これは私の完全なクエリですが、うまくいきません...:

SELECT id, type, details, 
                CASE WHEN strftime('%m-%d', Bday) < strftime('%m-%d', 'now')
                THEN strftime('2015-%m-%d', Bday)
                ELSE strftime('2014-%m-%d', Bday)
                END AS Bday
FROM Birthday 
WHERE Bday IN
      (SELECT DISTINCT 
         CASE WHEN strftime('%m-%d', Bday) < strftime('%m-%d', 'now')
         THEN strftime('2015-%m-%d', Bday)
         ELSE strftime('2014-%m-%d', Bday)
         END AS nextBday
       FROM Birthday
       ORDER BY nextBday
       LIMIT 50)
ORDER BY Bday

サブクエリを個別に実行すると、探している結果が得られます。

2015-01-01
2015-01-02

取得場所なしでメインクエリを実行すると:

id  type       details            Bday
1   11111      admin@sqlfiddle.com    2015-01-01
3   33333      admin@sqlfiddle.com    2015-01-01
2   22222      @sqlfiddle             2015-01-02
4   44444      @sqlfiddle             2015-01-02

しかし、組み合わせても結果は得られません...

私はこのsqlfiddleを作りました: http://sqlfiddle.com/#!5/58849/6/0

some1がこれで私を助けてくれることを願っています! 前もって感謝します!

4

1 に答える 1

0

AS句のフィールドの名前を変更しようとしています。句のBDayフィールドは、WHERE句のフィールドでbdayはなく、テーブル定義の を参照していますSELECT

問題を解決するには、代わりにこれに変更します (フィドルで 2 行の結果が得られます)。

SELECT id, type, details, 
 CASE WHEN strftime('%m-%d', Bday) < strftime('%m-%d', 'now')
 THEN strftime('2015-%m-%d', Bday)
 ELSE strftime('2014-%m-%d', Bday)
 END AS FBDay
FROM Birthday 
WHERE FBDay IN
 (SELECT DISTINCT 
     CASE WHEN strftime('%m-%d', Bday) < strftime('%m-%d', 'now')
     THEN strftime('2015-%m-%d', Bday)
     ELSE strftime('2014-%m-%d', Bday)
     END AS nextBday
  FROM Birthday
  ORDER BY nextBday
  LIMIT 1)
ORDER BY Bday
于 2014-01-31T19:28:10.180 に答える