LoginSignup
0
0

More than 1 year has passed since last update.

DBの共通SQL

Last updated at Posted at 2019-06-07

複数テーブルの件数を一緒に出力する

select 'Table501',count(*) from Table501 union
select 'Table502',count(*) from Table502 union
select 'Table512',count(*) from Table512 union
select 'Table522',count(*) from Table522 union
select 'Table530',count(*) from Table530;

Cross join(交差結合:全部の組み合わせが返ってきます)※直積※

-- 新規カレンダ追加
-- workcalテーブルに日付と稼働日フラグを入れてから実行
INSERT INTO t_workcal 
SELECT
  b.BushoCd
  , a.CalDt
  , a.WorkFlg
  , '0' WorkDtSq
  , "admin"
  , CURRENT_DATE + 0
  , CURRENT_TIME + 0
  , "admin"
  , CURRENT_DATE + 0
  , CURRENT_TIME + 0 
FROM
  workcal a 
  CROSS JOIN busho b 
WHERE
  a.CalDt >= '20220401' 
ORDER BY
  b.BushoCd
  , a.CalDt

leftjoin:左表の件数を基準にして、減らない方法

SELECT
 DATE_FORMAT(a.CalDt, '%Y/%m/%d') CalDt
  , dayname(DATE_FORMAT(a.CalDt, '%Y/%m/%d')) dayname
  , WEEK(DATE_FORMAT(a.CalDt, '%Y/%m/%d'),3) WEEK
  , b.ShainNo
FROM
  t_workcal a 
  LEFT JOIN t_sagyoushashift b 
    ON a.BushoCd = b.BushoCd 
    AND a.CalDt = b.CalDt 
	and b.ShainNo='test'
WHERE 
a.BushoCd = '11'
and left(a.CalDt,6) = '202209'

条件はWhereに置かないで、「ON」のところに置くと、件数が減らない。
https://blog.csdn.net/qq_34224565/article/details/125760805
当where 条件在外,会先聚合后过滤,所以结果会变少

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0