SQLer 生島勘富 のブログ

RDB・SQLの話題を中心に情報発信をしています。

なぜごり押しなのか2 -- 詐欺師になるな。

 世の中には本当に【詐欺師】のような技術者が詐欺的なものを作って飯を食っています。

 例えば、以下、ぱっと見て何をやっているSQLか理解できるでしょうか。

 ■ テーブル構造

 ■SQL
 SELECT 資格取得履歴表.社員番号,COUNT(*)
 FROM 資格取得履歴表,社員表
 WHERE 資格取得履歴表.資格番号 IN(SELECT 前提資格表.資格番号
                  FROM 前提資格表
                  WHERE 前提資格表.職位番号='02')
  AND 資格取得履歴表.社員番号 = 社員表.社員番号
  AND 社員表.職位番号 ='02'
 GROUP BY 資格取得履歴表.社員番号
 HAVING COUNT(*) >= (SELECT 職位表.取得資格数
             FROM 職位表
             WHERE 職位表.職位番号 = '02')

 決して上手なSQLではないので、書いた奴が側にいれば小一時間は問い詰めたい所ですが、新人ならともかく、この程度がで読めない、書けないで金を取ったら立派な【詐欺師】です。もうちょっときれいに書けないとプロとは呼べません。

 しかし、実際に「HAVING なんてが良く分からん」という連中はいくらでも居ます。

 そんな【詐欺師】を世に出さないように、SQLから逃げる人を私は許せないのです。

 業界の人間として、そんな犯罪行為に手を貸すべきではありませんし、業界として自浄作用は持つべきでしょう。

 今は、業界としてY2K並の詐欺行為が長々と継続しています。本当にどうにかしたい。