1.JOIN

テーブル
売上日が 2013/04/01 以降の売上データを表示する。得意先名も表示するが、削除済の得意先名は非表示(null)とする

2.適用期間に誤りがある

テーブル
適用期間FROM - TO が被っているデータを抽出する

3.連勝 - 連敗

テーブル
一番多い連勝と連敗の数を出力する

付録 (DDL とテストデータ) SQL Database(Azure) で確認

回答は、勉強会で上がった中でこれは!というものを選んでいます。
-- Q1
create table [売上] ( 
  [売上番号] nchar(5) not null primary key, 
  [売上日] date not null, 
  [得意先Id] int not null, 
  [売上金額] int not null
)

create table [得意先マスタ] ( 
  [Id] int not null primary key, 
  [名前] nvarchar(20) not null, 
  [TEL] varchar(20) not null, 
  [住所] nvarchar(20) not null, 
  [削除済] bit not null 
)

insert into [売上] values 
('U0001', '2013/1/5', 1, 10000), 
('U0002', '2013/2/1', 2, 20000), 
('U0003', '2013/2/15', 1, 30000), 
('U0004', '2013/3/7', 3, 40000), 
('U0005', '2013/3/18', 2, 50000), 
('U0006', '2013/4/6', 4, 60000), 
('U0007', '2013/4/11', 1, 70000), 
('U0008', '2013/5/1', 3, 80000), 
('U0009', '2013/6/23', 2, 90000)

insert into [得意先マスタ] values
(1, '得意先1', '00-0000-0001', '大阪', 0), 
(2, '得意先2', '00-0000-0002', '兵庫', 0), 
(3, '得意先3 - 廃業', '00-0000-0003', '三重', 1), 
(4, '得意先4', '00-0000-0004', '京都', 0), 
(5, '得意先5', '00-0000-0005', '奈良', 0)

-- A1
SELECT 売上番号,
       売上日,
       名前 AS 得意先名,
       売上金額
FROM   売上
       LEFT OUTER JOIN
       得意先マスタ
       ON Id = 得意先Id
          AND 削除済 = 0
WHERE  売上日 >= '2013/04/01'

-- Q2
create table [所属] ( 
  [PK] int not null identity(1, 1) primary key, 
  [チーム] nvarchar(20) not null, 
  [選手] nvarchar(20) not null, 
  [在籍期間From] date not null, 
  [在籍期間To] date not null
)

insert into [所属] ( [チーム], [選手], [在籍期間From], [在籍期間To] ) 
values 
('阪神', '和田', '1985/04/01', '2001/03/31'), 
('広島', '金本', '1992/04/01', '2003/03/31'), 
('阪神', '金本', '2003/04/01', '2012/03/31'), 
('広島', '新井', '1999/04/01', '2008/03/31'), 
('阪神', '新井', '2008/04/01', '9999/12/31'), 
('阪神', '能見', '2005/04/01', '9999/12/31'), 
('ロッテ', '西岡', '2003/04/01', '2012/03/31'), 
('MLB', '西岡', '2011/04/01', '2013/03/31'), 
('阪神', '西岡', '2013/04/01', '9999/12/31'),
('阪神', '井川', '1998/04/01', '2007/03/31'),
('MLB', '井川', '2007/04/01', '2012/03/31'),
('オリックス', '井川', '2012/04/01', '9999/12/31')

-- A2
SELECT a.チーム,
       a.選手,
       a.在籍期間From,
       a.在籍期間To
FROM   ref.所属 AS a
WHERE  EXISTS (SELECT pk
               FROM   ref.所属 AS b
               WHERE  a.pk <> b.pk
                      AND a.選手 = b.選手
                      AND a.在籍期間from <= b.在籍期間to
                      AND a.在籍期間to >= b.在籍期間from);

-- Q3
create table [試合結果] ( 
  [日付] Date not null primary key, 
  [勝敗値] int not null check ([勝敗値] in (1, 0)), 
  [星] as case [勝敗値] when 1 then '☆' else '★' end  
)

insert into [試合結果] ( [日付], [勝敗値] )
values 
('2013/4/1',0), 
('2013/4/3',1), 
('2013/4/4',1), 
('2013/4/5',0), 
('2013/4/6',1), 
('2013/4/7',1), 
('2013/4/8',1), 
('2013/4/10',1), 
('2013/4/11',1), 
('2013/4/12',1), 
('2013/4/14',0), 
('2013/4/15',0), 
('2013/4/17',0), 
('2013/4/18',1), 
('2013/4/19',1), 
('2013/4/20',0)

-- A3
SELECT   勝敗値,
         max(cnt)
FROM     (SELECT   勝敗値,
                   count(*) AS cnt
          FROM     (SELECT 勝敗値,
                           row_number() OVER (ORDER BY 日付) - row_number() OVER (PARTITION BY 勝敗値 ORDER BY 日付) AS cnt
                    FROM   試合結果 AS s) AS a
          GROUP BY 勝敗値, cnt) AS a
GROUP BY 勝敗値
ORDER BY 勝敗値;