Q&A

  • SQL 로 부,자 TABLE 조인. 1대1
아무리 해도 답이 안나와서 질문 합니다.



내용은 장비 이력관리 입니다.



구성

장비 TABLE (장비번호,모델,구입일.......)

이력 TABLE (장비번호, 사용자, 사용개시일.......)



즉 한 장비에 대해서 사용자가 계속 바뀌고 그이력을 관리합니다.



질문

현재 장비의 LIST(장비번호, 모델, 구입일... 사용자,사용개시일...)

이런 리스트를 만드려고 합니다.



그런데 쿼리를 하면

장비번호 ............사용자.......

--------------------------------------

01 개똥이

01 소똥이

01 말똥이

02 소똥이

02 닭똥이



이렇게 나타납니다.

제가 원하는 것은

장비번호 ............사용자.......

--------------------------------------

01 말똥이

02 닭똥이



이거지요. (장비 LIST + 현재 사용자)



혹시 고수님들이 아니 이렇게 쉬운걸... 책도 안보나...

하고 욕하지 마시길..

저도 꼬박 하루 동안 연구했습니다.

이제 너무지쳐서.....^^;



꼭좀 알려 주십시요..















2  COMMENTS
  • Profile
    김종언 2000.12.01 22:18
    설마 로컬 DB는 아니겠죠? 그럼

    과거 제가했던 것의 SQL문장입니다. 참고하세요...



    select aa.item_code1, code1.item_name, cost.item_cost from

    (select max(item_date) item_date, item_code1 from cost group by item_code1) AA

    Left Join cost On (AA.item_code1 = cost.item_code1 and AA.item_date = cost.item_date)

    Left Join code1 On (AA.item_code1 = code1.item_code1)



    위는 두개의 테이블이었습니다.

    물품테이블과 가격테이블의 조인입니다.

    가격이 수시로 변하니깐.. 아래 님이 말씀하신 사용자처럼요...

    조금만 고치면 그대로 사용하실수 있습니다.







    남주희 wrote:

    > 아무리 해도 답이 안나와서 질문 합니다.

    >

    > 내용은 장비 이력관리 입니다.

    >

    > 구성

    > 장비 TABLE (장비번호,모델,구입일.......)

    > 이력 TABLE (장비번호, 사용자, 사용개시일.......)

    >

    > 즉 한 장비에 대해서 사용자가 계속 바뀌고 그이력을 관리합니다.

    >

    > 질문

    > 현재 장비의 LIST(장비번호, 모델, 구입일... 사용자,사용개시일...)

    > 이런 리스트를 만드려고 합니다.

    >

    > 그런데 쿼리를 하면

    > 장비번호 ............사용자.......

    > --------------------------------------

    > 01 개똥이

    > 01 소똥이

    > 01 말똥이

    > 02 소똥이

    > 02 닭똥이

    >

    > 이렇게 나타납니다.

    > 제가 원하는 것은

    > 장비번호 ............사용자.......

    > --------------------------------------

    > 01 말똥이

    > 02 닭똥이

    >

    > 이거지요. (장비 LIST + 현재 사용자)

    >

    > 혹시 고수님들이 아니 이렇게 쉬운걸... 책도 안보나...

    > 하고 욕하지 마시길..

    > 저도 꼬박 하루 동안 연구했습니다.

    > 이제 너무지쳐서.....^^;

    >

    > 꼭좀 알려 주십시요..

    >

    >

    >

    >

    >

    >

    >

  • Profile
    좋은날 2000.12.01 21:28
    남주희 wrote:

    > 아무리 해도 답이 안나와서 질문 합니다.

    >

    > 내용은 장비 이력관리 입니다.

    >

    > 구성

    > 장비 TABLE (장비번호,모델,구입일.......)

    > 이력 TABLE (장비번호, 사용자, 사용개시일.......)

    >

    > 즉 한 장비에 대해서 사용자가 계속 바뀌고 그이력을 관리합니다.

    >

    > 질문

    > 현재 장비의 LIST(장비번호, 모델, 구입일... 사용자,사용개시일...)

    > 이런 리스트를 만드려고 합니다.

    >

    > 그런데 쿼리를 하면

    > 장비번호 ............사용자.......

    > --------------------------------------

    > 01 개똥이

    > 01 소똥이

    > 01 말똥이

    > 02 소똥이

    > 02 닭똥이

    >

    > 이렇게 나타납니다.

    > 제가 원하는 것은

    > 장비번호 ............사용자.......

    > --------------------------------------

    > 01 말똥이

    > 02 닭똥이

    >

    > 이거지요. (장비 LIST + 현재 사용자)

    >

    > 혹시 고수님들이 아니 이렇게 쉬운걸... 책도 안보나...

    > 하고 욕하지 마시길..

    > 저도 꼬박 하루 동안 연구했습니다.

    > 이제 너무지쳐서.....^^;

    >

    > 꼭좀 알려 주십시요..

    >

    >

    >

    >

    >

    >

    >

    장비이력Table에 사용개시일과 함께 사용종료일이 있어야 하거나 혹은 현재사용여부

    필드가 있어야 합니다. 그런 필드가 없다면...

    서브쿼리로 max(사용개시일)을 하셔야 함다.



    그런후 장비테이블과 이력테이블을 아우터조인하심 될꺼 같슴다.





    select a.장비번호, b.사용자성명

    from 장비 a, 이력 b

    where a.장비번호 = b.장비번호(+)

    and b.사용개시일 = (select max(c.사용개시일) from 이력 c

    where c.장비번호 = a.장비번호)