如何使用一个条件检查两个SQL记录?

时间:2013-07-29 13:02:09

标签: sql oracle case

我想在此表中添加另一列,如果第一部分的模式为“现金”,则在PersonID前面提出“Cash to Electronic”,并在第二部分的模式中提出“电子”。

PersonID    InstalmentNumber  DateOfInstalment          Mode
50023467    2                   15-Mar-12               Electronic
50023467    1                   15-Feb-12               Electronic
50023468    2                   5-Apr-12                Cash
50023468    1                   5-Mar-12                Cash
50023469    2                   15-Mar-12               Electronic
50023469    2                   15-Mar-12               Electronic
50023469    1                   15-Feb-12               Electronic
50023469    1                   15-Feb-12               Cash
50027967    2                   15-Mar-12               Electronic

预期产出:

PersonID    InstalmentNumber  DateOfInstalment          Mode           Flag
50023467    2                   15-Mar-12               Electronic    
50023467    1                   15-Feb-12               Electronic
50023468    2                   5-Apr-12                Cash
50023468    1                   5-Mar-12                Cash
50023469    2                   15-Mar-12               Electronic
50023469    2                   15-Mar-12               Electronic
50023469    1                   15-Feb-12               Cash
50023469    1                   15-Feb-12               Cash           Cash To Electronic
50027967    2                   15-Mar-12               Electronic

2 个答案:

答案 0 :(得分:2)

尝试这种方式:

select distinct t.PersonID,t.InstalmentNumber,t.DateOfInstalment,t.Mode, 
       case 
          when x.PersonID is not null
             and t.Mode = 'Cash'
             and t.InstalmentNumber = 1
            then 'Cash to Electronic'
          else null
       end as Flag
from tab t
left join tab x on x.PersonID = t.PersonID AND
                   x.Mode = 'Electronic' AND
                   x.InstalmentNumber = 2

<强> Sql Fiddle Demo

答案 1 :(得分:0)

大概参加聚会,但是我会使用窗口功能

> babel-react-webpack-flow-boilerplate@1.0.0 flow F:\dev\web\proptype-test
> flow

Error ----------------------------------------------------------------------------------- src/js/components/App.js:32:16

Cannot compare boolean [1] to statics of `App` [2].

   src/js/components/App.js:32:16
   32| export default injectProp<AppProps>(App);

                      ^^^^^^^^^^^^^^^^^^^ [1]

References:
   src/js/components/App.js:10:7
   10| class App extends Component<AppProps, {}> {

             ^^^ [2]


Error ----------------------------------------------------------------------------------- src/js/components/App.js:32:27

Cannot reference type `AppProps` [1] from a value position.

   src/js/components/App.js:32:27
   32| export default injectProp<AppProps>(App);

                                 ^^^^^^^^

References:
   src/js/components/App.js:5:11
    5| interface AppProps {

                 ^^^^^^^^ [1]


Error --------------------------------------------------------------------------------------------- src/js/index.js:17:1

Cannot call `ReactDOM.render` because boolean [1] is not a React component.

   src/js/index.js:17:1
   17| ReactDOM.render(<App message="A" />, entryEl);

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

References:
   src/js/components/App.js:32:16
   32| export default injectProp<AppProps>(App);

                      ^^^^^^^^^^^^^^^^^^^^^^^^^ [1]


Error -------------------------------------------------------------------------------------------- src/js/index.js:17:17

Cannot call `ReactDOM.render` with `<App />` bound to `element` because boolean [1] is incompatible with string [2] in
type argument `ElementType` [3].

   src/js/index.js:17:17
    17| ReactDOM.render(<App message="A" />, entryEl);

                        ^^^^^^^^^^^^^^^^^^^

References:
   src/js/components/App.js:32:16
    32| export default injectProp<AppProps>(App);

                       ^^^^^^^^^^^^^^^^^^^^^^^^^ [1]
   C:\Users\User\AppData\Local\Temp\flow\flowlib_6db8195\react.js:159:5
   159|   | string

            ^^^^^^ [2]
   C:\Users\User\AppData\Local\Temp\flow\flowlib_6db8195\react.js:167:29
   167| declare type React$Element<+ElementType: React$ElementType> = {|

                                    ^^^^^^^^^^^ [3]


Error -------------------------------------------------------------------------------------------- src/js/index.js:17:17

Cannot create `App` element because boolean [1] is not a React component.

   src/js/index.js:17:17
   17| ReactDOM.render(<App message="A" />, entryEl);

                       ^^^^^^^^^^^^^^^^^^^

References:
   src/js/components/App.js:32:16
   32| export default injectProp<AppProps>(App);

                      ^^^^^^^^^^^^^^^^^^^^^^^^^ [1]



Found 5 errors

Only showing the most relevant union/intersection branches.
To see all branches, re-run Flow with --show-all-branches
相关问题