2016-08-17 23 views
0

SQL Serverクエリには小さな問題があります。SQLを使用したプロブラム選択グループ

重複した値を持ついくつかの基本表のビューに問題がありますが、問題はありません。これらの重複は論理的です。残念ながら、私はアプリケーションのフロントエンドをプログラミングすることでそれを行うことができますが、私はサーバー上で作業することを好むでしょう。

私は原則を説明します: 私は従業員のテーブルがそれぞれ30社あります。 私のビューは30人の従業員テーブルの組合です。 各従業員には一意のシリアル番号があり、その番号はテーブル全体で同じです。したがって、ID番号「S0000021」の従業員「John Doe」はA社に雇用され、問題なくQ社に移管されます。シリアル番号「S0000021」。

従業員テーブルAとQのデータの違いは、この例では、A社に入力された開始日(雇用)とリリース日(転送日)と企業Qの開始日になります。 "John Doe"の行。

12共通フィールドは次のとおりです。

  • シリアル番号(すべての従業員テーブル内の同一)
    • 社会保障番号(すべての従業員テーブル内の同じ)
    • スタート/入社日
    • リリース/譲渡日(空/社員が現在の場合はnull)
    • 氏名(離婚の場合は会社間で変更することができます)
    • まず名前
    • 旧姓
    • 性別
    • 最終リリース
    • 会社コード

問題は、私はその最新表示されないであろうと、単純なようです従業員の情報は、グループを除き、名前またはリリース日が変更された場合は表示されます二度。

は、私は、次のさまざまな方法を試してみましたが、彼らは、私は結果に両方の方法を返されたが、企業内の私の日付は同じことはありませんので、私はいつも重複を見て、自分の名前が変更される可能性があり

を望むものを返しません。

このGoogleの翻訳に申し訳ありません。

1 -

select 
     vue.matricule, 
     vue.numsecu, 
     vue.name, 
     vue.lastname, 
     vue.maidenname, 
     vue.secondname, 
     vue.genre, 
     vue.released, 
     vue.companycode 

    from 
     vue 

    group by 
     vue.matricule, 
     vue.numsecu, 
     vue.name, 
     vue.lastname, 
     vue.maidenname, 
     vue.secondname, 
     vue.genre, 
     vue.released, 
     vue.companycode 

2 ---

select 
    distinct(vue.matricule), 
    vue.numsecu, 
    vue.name, 
    vue.lastname, 
    vue.maidenname, 
    vue.secondname, 
    vue.genre, 
    vue.released, 
    vue.companycode 

from 
    vue 

エンフランス語 ボンジュールàTOUS、

帝rencontre未プチproblèmeデタイユシュールUNErequêteSQL Serveur。

私は、重複する値を持ついくつかの基地の端面図で、これまでのところ問題はない、これらの重複は論理的です。短所では私が所望の最終結果を得ることはありません、私は自分のアプリケーションの胸をプログラミングすることによってそれを行うことが、私は、サーバーを動作することを好むだろう。

私は原理を説明:私は、従業員テーブルにそれらのそれぞれのある30の 会社の基盤をしています。 私の見解は、30の従業員のテーブルの組合の要求です。 各従業員のユニークなシリアルコード、それは社会を変更した場合、コードは同じに従って、その従業員のノーム登録番号「S0000021」と「ジョン・ドゥ」は、その後に転送されているA社で作成することができますQ会社は何の問題もなく、それはS0000021あるシリアル番号を保持します。

AとQのEmployeeテーブルからのデータの違いは、この例では、入口と出口の日付は、A社のために入力されますとQによって、企業へのエントリーのちょうど日中に対するビューは、「ジョン・ドゥ」のための良好な2つのラインを持っています。

12個の共通のフィールドがある

: - ロール(各拠点で同一) - 社会保障番号(各基地と同じ) - エントリ の日 - リリース(空の従業員がいる場合常に存在) - 名(離婚の人ならば変更できます) - まず - 旧姓 - セカンドネーム - 性別 - 出力決勝 - 会社コード

問題は、私は、nをしたいシンプルなようです「明朝それは名前やリリース日を変更した場合、それが2回表示されます、でグループを除いてAISSE従業員の最新情報は、。

私はあらゆる方法でクエリを返されたが、私の日付は同じことはありませんので、私はいつも重複を頼って、名前が変更される可能性があり、次のdifferantかの方法が、何も決定的

をテストしました。

このGoogle翻訳のため申し訳ありません。

+1

あなたは、データ・ソースと所望の出力の簡単な例を提供することができますか?採用、少なくとも2または3のシナリオを表示します。 – SMM

+0

私のフランス人は、あなたが会社の従業員1人あたりの最大給与金最新の給与、および各従業員が複数の企業に-されている可能性があり、各企業は、情報通信技術(ICT)自分のテーブルにある?したい目的悪いですか一緒に30人の従業員のテーブルのあなたのビュー?私は、彼らはただ(おそらく日付でリリース)の最新のレコードを探している – Beth

+1

と思います。おそらくROW_NUMBERパーティション1つの従業員IDは、私は彼らが – SMM

答えて

0

私は、次の仮定:

  • すでにあなただけの各従業員
用の最新のレコードを探している企業30社
  • のそれぞれからすべてのデータを収集ビュー(視界)があります

    あなたは私たちがこれを変更することができますそれぞれの名前の変更のレコードaussiを確認する必要がある場合。

    --set up test data 
    declare @vue table (
        matricule  varchar(20), 
        numsecu   varchar(20), 
        name   varchar(20), 
        lastname  varchar(20), 
        maidenname  varchar(20), 
        secondname  varchar(20), 
        genre   varchar(20), 
        start   datetime, 
        released  datetime, 
        companycode  varchar(20)); 
    
    insert @vue values 
        ('S0000021','123456789','John', 'Doe',null,null,'M','2015-01-01','2015-12-31','A'), 
        ('S0000021','123456789','Johnny', 'Doe',null,null,'M','2016-01-01',null,'Q'),  --new company, name change, currently employed 
        ('S0000022','123456780','Jane', 'Doe',null,null,'M','2015-01-01','2015-12-31','A'), 
        ('S0000022','123456780','Jane', 'Doe',null,null,'M','2016-01-01','2016-02-01','Q'); --new company, name change, terminated 
    
    select * from @vue order by matricule, start; 
    
    --get latest record for each employee 
    select * 
    from (--add row numbering 
         select *, row_number() over (partition by matricule order by start desc) row_num 
         from @vue 
         ) vue2 
    where vue2.row_num = 1; 
    
  • +0

    、こんにちは:-)に答える前に、いくつかのサンプルデータを提供することができホッピングれた目標を働くだろうと私は、サブクエリですべての方向に質問を回したが、私は1想像していませんでした。その結果与えられた 感謝は私が望んでいたものです。 – user2769000

    +0

    こんにちは、私は は、サブクエリですべての方向に私が想像なかったならば、この1つの目的を問題になっていました。結果を考えると メルシーのbeaucoupは私が望んでいたものです。 – user2769000

    関連する問題