sql >> データベース >  >> RDS >> Mysql

SQL日付の間に部屋が空いているかどうかを確認するには

    これにより、特定の質問に「はい」または「いいえ」で答えます。日付検索値はすべてハードコードされたリストで特定されているため、これが役立つかどうかはわかりません。

    select coalesce(max('no'), 'yes') as available
    from tbl t           
    where room_type_id = 23 and
        dt in ("2018-03-06 00:00:00", "2018-03-07 00:00:00", 
               "2018-03-08 00:00:00", "2018-03-09 00:00:00");
    

    ロジックの意味が少なくとも1つのオープンを見つけることを目的としている場合 日付を入力すると、次のようなものを試すことができます:

    select case when count(*) = 4 then 1 else 0 end as whatever_this_means
    from tbl t
    where room_type_id = 23 and
        dt in ("2018-03-06 00:00:00", "2018-03-07 00:00:00", 
               "2018-03-08 00:00:00", "2018-03-09 00:00:00");
    

    問題は、クエリの後半のリストにある日付の数に関連付けられている値4をハードコーディングしたことです。これをより動的に処理する方法はいくつかありますが、それを行うための最良の方法は質問から完全には明らかではありません。



    1. OracleからPythonを呼び出す

    2. MERGEクエリを改善する方法はありますか?

    3. MySQL-Pythonを使用して異なるサーバー上のデータベース間で結合しますか?

    4. MySQLクエリエディタで列を並べ替えるにはどうすればよいですか?