2012-12-28 2 views
3

나는 액세스 쿼리 (2003)가 :Aceess Query - 필드가 null이면 출력되지 않습니까?

SELECT [User] [100], [101], [102], [103], [104], [105], [106], [107], [108], [109], [110] 
FROM [Access_Count>1] 

I는 다음과 같이 얻을 결과 : I 출력에서 ​​빈 열/필드를 제외 할 수있는 방법이

[User], [100], [101], [102], [103], [104], [105], [106], [107], [108], [109], [110] 
UserA,100,101,,,,,,,,, 
UserB,,,,,,,,109,110 

거기를? 그래서 내 결과는 다음과 같이 될 것이다 : 나는 구글을 통해 오늘 대규모 사냥이 있었다

[User], [100], [101], [109], [110] 
UserA,100,101,, 
UserB,,,109,110 

, 비슷한 질문이 다른 질문 만 해결 결코 발견했다.

샘플 데이터 : http://db.tt/rM2JUvNR

건배,

+0

누구도 내게 원하는 것을 얻을 수 있는지 확인해 주셔서 감사합니다. 코드에 이미 코드를 넣었습니다. :) 예. 다시 액세스로 인해 벽돌 벽에 부딪쳤습니다. –

+1

일반적으로 SQL은 출력 형식에 미리 결정된 열이 있어야합니다. 다른 데이터베이스에서는 이러한 목적으로 동적 SQL을 사용할 수 있습니다. 그러나 열 수를 변경하는 "순수한"SQL 솔루션은 없습니다. –

+0

'[Access_Count> 1]'테이블에서 몇 가지 샘플 데이터를 보여줄 수 있습니까? ** Crosstab ** 쿼리가 필요에 따라 형성 될 수 있는지 궁금합니다. –

답변

1

마이클 출력은 테이블을 할 필요가 있는가? 값을 문자열로 연결할 수 있습니까?

그렇다면, 당신은 다음과 같이 뭔가를 할 수 있습니다

select t.[user], 
     mid((iif(Keep100 = 'Y', ','&[100])& 
      iif(Keep101 = 'Y', ','&[101])& 
      . . . 
      ), 2) 
from [AccessCount>1], 
    (select t, iif(max([100]) is null, 'N', 'Y') as Keep100, 
      iif(max([101]) is null, 'N', 'Y') as Keep101, 
      . . . 
     from [AccessCount>1] 
    ) tkeep 

아이디어는 구분 기호로 쉼표로 문자열을 구축하는 것입니다. mid 문은 문자열의 첫 번째 문자를 제거합니다.

+0

출력이 테이블 일 필요는 없습니다. 최종 결과를 얻으려면 해당 데이터를 Excel로 가져와야합니다. 나는 당신이 올린 것에 대해 많은 경험을하지 못했지만, 지금 당장 나가고 있습니다. 윌 보고서. –

+0

지금까지 치료를해라 !! 정말 고마워. 작업이 끝나면 완성 된 코드/쿼리를 게시하여 OP에 게시 된 샘플 데이터와 함께 작동합니다. –

0

나는, 그것은 # 오류로 액세스 열을 던지고 나는 고든 리노 프에 대한 모든 200

큰 감사를 수행하려고 할 때이 쿼리로 분리해서했고, 나는 이것이 미래에 누군가가 도움이되기를 바랍니다 :)

select Access_Count_1.[Name],Access_Count_1.[Manager], 
mid((iif(Keep100 = 'Y', ','&[100])& 
iif(Keep101 = 'Y', ','&[101])& 
iif(Keep102 = 'Y', ','&[102])& 
iif(Keep103 = 'Y', ','&[103])& 
iif(Keep104 = 'Y', ','&[104])& 
iif(Keep105 = 'Y', ','&[105])& 
iif(Keep106 = 'Y', ','&[106])& 
iif(Keep107 = 'Y', ','&[107])& 
iif(Keep108 = 'Y', ','&[108])& 
iif(Keep109 = 'Y', ','&[109])& 
iif(Keep110 = 'Y', ','&[110])& 
iif(Keep111 = 'Y', ','&[111])& 
iif(Keep112 = 'Y', ','&[112])& 
iif(Keep113 = 'Y', ','&[113])& 
iif(Keep114 = 'Y', ','&[114])& 
iif(Keep115 = 'Y', ','&[115])& 
iif(Keep116 = 'Y', ','&[116])& 
iif(Keep117 = 'Y', ','&[117])& 
iif(Keep118 = 'Y', ','&[118])& 
iif(Keep119 = 'Y', ','&[119])& 
iif(Keep120 = 'Y', ','&[120])& 
iif(Keep121 = 'Y', ','&[121])& 
iif(Keep122 = 'Y', ','&[122])& 
iif(Keep123 = 'Y', ','&[123])& 
iif(Keep124 = 'Y', ','&[124])& 
iif(Keep125 = 'Y', ','&[125])& 
iif(Keep126 = 'Y', ','&[126])& 
iif(Keep127 = 'Y', ','&[127])& 
iif(Keep128 = 'Y', ','&[128])& 
iif(Keep129 = 'Y', ','&[129])& 
iif(Keep130 = 'Y', ','&[130])& 
iif(Keep131 = 'Y', ','&[131])& 
iif(Keep132 = 'Y', ','&[132])& 
iif(Keep133 = 'Y', ','&[133])& 
iif(Keep134 = 'Y', ','&[134])& 
iif(Keep135 = 'Y', ','&[135])& 
iif(Keep136 = 'Y', ','&[136])& 
iif(Keep137 = 'Y', ','&[137])& 
iif(Keep138 = 'Y', ','&[138])& 
iif(Keep139 = 'Y', ','&[139])& 
iif(Keep140 = 'Y', ','&[140])& 
iif(Keep141 = 'Y', ','&[141])& 
iif(Keep142 = 'Y', ','&[142])& 
iif(Keep143 = 'Y', ','&[143])& 
iif(Keep144 = 'Y', ','&[144])& 
iif(Keep145 = 'Y', ','&[145])& 
iif(Keep146 = 'Y', ','&[146])& 
iif(Keep147 = 'Y', ','&[147])& 
iif(Keep148 = 'Y', ','&[148])& 
iif(Keep149 = 'Y', ','&[149])& 
iif(Keep150 = 'Y', ','&[150]) 
), 2) As Access 
from [Access_Count_1], 
(select 
iif(max([100]) is null, 'N', 'Y') as Keep100, 
iif(max([101]) is null, 'N', 'Y') as Keep101, 
iif(max([102]) is null, 'N', 'Y') as Keep102, 
iif(max([103]) is null, 'N', 'Y') as Keep103, 
iif(max([104]) is null, 'N', 'Y') as Keep104, 
iif(max([105]) is null, 'N', 'Y') as Keep105, 
iif(max([106]) is null, 'N', 'Y') as Keep106, 
iif(max([107]) is null, 'N', 'Y') as Keep107, 
iif(max([108]) is null, 'N', 'Y') as Keep108, 
iif(max([109]) is null, 'N', 'Y') as Keep109, 
iif(max([110]) is null, 'N', 'Y') as Keep110, 
iif(max([111]) is null, 'N', 'Y') as Keep111, 
iif(max([112]) is null, 'N', 'Y') as Keep112, 
iif(max([113]) is null, 'N', 'Y') as Keep113, 
iif(max([114]) is null, 'N', 'Y') as Keep114, 
iif(max([115]) is null, 'N', 'Y') as Keep115, 
iif(max([116]) is null, 'N', 'Y') as Keep116, 
iif(max([117]) is null, 'N', 'Y') as Keep117, 
iif(max([118]) is null, 'N', 'Y') as Keep118, 
iif(max([119]) is null, 'N', 'Y') as Keep119, 
iif(max([120]) is null, 'N', 'Y') as Keep120, 
iif(max([121]) is null, 'N', 'Y') as Keep121, 
iif(max([122]) is null, 'N', 'Y') as Keep122, 
iif(max([123]) is null, 'N', 'Y') as Keep123, 
iif(max([124]) is null, 'N', 'Y') as Keep124, 
iif(max([125]) is null, 'N', 'Y') as Keep125, 
iif(max([126]) is null, 'N', 'Y') as Keep126, 
iif(max([127]) is null, 'N', 'Y') as Keep127, 
iif(max([128]) is null, 'N', 'Y') as Keep128, 
iif(max([129]) is null, 'N', 'Y') as Keep129, 
iif(max([130]) is null, 'N', 'Y') as Keep130, 
iif(max([131]) is null, 'N', 'Y') as Keep131, 
iif(max([132]) is null, 'N', 'Y') as Keep132, 
iif(max([133]) is null, 'N', 'Y') as Keep133, 
iif(max([134]) is null, 'N', 'Y') as Keep134, 
iif(max([135]) is null, 'N', 'Y') as Keep135, 
iif(max([136]) is null, 'N', 'Y') as Keep136, 
iif(max([137]) is null, 'N', 'Y') as Keep137, 
iif(max([138]) is null, 'N', 'Y') as Keep138, 
iif(max([139]) is null, 'N', 'Y') as Keep139, 
iif(max([140]) is null, 'N', 'Y') as Keep140, 
iif(max([141]) is null, 'N', 'Y') as Keep141, 
iif(max([142]) is null, 'N', 'Y') as Keep142, 
iif(max([143]) is null, 'N', 'Y') as Keep143, 
iif(max([144]) is null, 'N', 'Y') as Keep144, 
iif(max([145]) is null, 'N', 'Y') as Keep145, 
iif(max([146]) is null, 'N', 'Y') as Keep146, 
iif(max([147]) is null, 'N', 'Y') as Keep147, 
iif(max([148]) is null, 'N', 'Y') as Keep148, 
iif(max([149]) is null, 'N', 'Y') as Keep149, 
iif(max([150]) is null, 'N', 'Y') as Keep150  
from [Access_Count_1] 
) tkeep