이 파트 식별자입니다 바인딩되지 수 없습니다.

39, ve seen 유사한 오류를 i& don& # 39, t, 하지만 난 내 문제 해결책을 찾아야 합니다.

I have a SQL 쿼리는 다음과 같습니다.

SELECT DISTINCT
        a.maxa ,
        b.mahuyen ,
        a.tenxa ,
        b.tenhuyen ,
        ISNULL(dkcd.tong, 0) AS tongdkcd
FROM    phuongxa a ,
        quanhuyen b
        LEFT OUTER JOIN ( SELECT    maxa ,
                                    COUNT(*) AS tong
                          FROM      khaosat
                          WHERE     CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011'
                                                              AND
                                                              'Sep 5 2011'
                          GROUP BY  maxa
                        ) AS dkcd ON dkcd.maxa = a.maxa
WHERE   a.maxa <> '99'
        AND LEFT(a.maxa, 2) = b.mahuyen
ORDER BY maxa;

그 때 나는 이 질의에서는 실행하십시오 오류가 있다.

  • 이 파트 식별자입니다 &quot a.maxa"; 왜 bound.* 수 없습니다. &lt br>; P/s: 만약 내가 쿼리하지 2 로 나누어 개별 it 실행하십시오 쿼리하지 확인.
SELECT DISTINCT
        a.maxa ,
        b.mahuyen ,
        a.tenxa ,
        b.tenhuyen
FROM    phuongxa a ,
        quanhuyen b
WHERE   a.maxa <> '99'
        AND LEFT(a.maxa, 2) = b.mahuyen
ORDER BY maxa;

SELECT  maxa ,
        COUNT(*) AS tong
FROM    khaosat
WHERE   CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011'
                                        AND     'Sep 5 2011'
GROUP BY maxa;
질문에 대한 의견 (6)
해결책

틀렸다니까 암시적입니다 믹싱 (mixing) 와의 합병을 통해 명시성 조인. 어떻게 그렇게 할 수 있는 수는 있으나 제대로 알고 있어야 합니다.

중요한건, 명시적 조인 (JOIN 키워드를 사용하여 수준들과 않는비즈니스 구현됩니까 '이') (# 39, & # 39 는, comma& 암시적입니다 우선합니다 수준들과 조인 (join 찼음을 지정되어 있는 '위치' 항).

39 의 here& 아웃라인과 쿼리하지 수 있습니다.

SELECT
  …
FROM a, b LEFT JOIN dkcd ON …
WHERE …

여러분은 이렇게 하지는 이를 것으로 기대하고 있다.

SELECT
  …
FROM (a, b) LEFT JOIN dkcd ON …
WHERE …

즉, 'a' 와 'b' 는 테이블 조합으로의 참여됨 트리스트 테이블 '와'. # 39 의 what& 실제로 일어나고 있다.

SELECT
  …
FROM a, (b LEFT JOIN dkcd ON …)
WHERE …

즉, 구체적으로 알고 있을 때 '는' b ',' 트리스트 참여됨 상대로 유일한 'b', 그 결과 'a', '이 결합된' 어디서 'join) 은 더욱 필터링됨 핵심이 되는 말이다. 이 경우 모든 참조입니다 'a' 의 '에', 'a' 는 점에서 알 수 없는 것은 잘못된 것이다. 그래서 가져오는 틀렸다니까 오류 메시지.

내가 당신이라면, 아마도 이 질의에서는 및 재작성할 할 수 있는 솔루션을 사용할 수 있습니다.

SELECT DISTINCT
  a.maxa,
  b.mahuyen,
  a.tenxa,
  b.tenhuyen,
  ISNULL(dkcd.tong, 0) AS tongdkcd
FROM phuongxa a
  INNER JOIN quanhuyen b ON LEFT(a.maxa, 2) = b.mahuyen
  LEFT OUTER JOIN (
    SELECT
      maxa,
      COUNT(*) AS tong
    FROM khaosat
    WHERE CONVERT(datetime, ngaylap, 103) BETWEEN 'Sep 1 2011' AND 'Sep 5 2011'
    GROUP BY maxa
  ) AS dkcd ON dkcd.maxa = a.maxa
WHERE a.maxa  '99'
ORDER BY a.maxa

이 테이블 'a' 와 'b' 는 '다음 결과는 트리스트 참여됨 먼저 참여한'. 이는 기본적으로 같은 조인 구문을 사용하여 쿼리하지 tpc. 당신, 만 중 다른 어떤 큰 차이가 있습니다. '& # 39 의' 를 '참조' 이스마사 트리스트 참가하십시오 찼음을 이제 밀어버릴꺼에요 유효함.

아마도 제대로 받을 수 있다 '는 다음과 같이 @Aaron 베르트랑 합니다 아마도' a ',' 마사 sys_memsize 특정 앨리어스입니다 '에서' ORDER BY 절.

해설 (9)

이 오류는 스키마 (dbo) 에 사용할 때 가끔 쿼리하지 받을시간은 틀렸어.

예를 들어 작성한 경우:

select dbo.prd.name
from dbo.product prd

오류 얻을 수 있습니다.

이 상황을 변경하십시오:

select prd.name
from dbo.product prd
해설 (1)

이 경우 실제 이름이 주어진 '알리' 역할로 잘 이름 변경

예를 들어

SELECT  
    A.name,A.date
  FROM [LoginInfo].[dbo].[TableA] as A
   join 
  [LoginInfo].[dbo].[TableA] as B 
  on  [LoginInfo].[dbo].[TableA].name=[LoginInfo].[dbo].[TableB].name;

이 변경

SELECT  
    A.name,A.date
  FROM [LoginInfo].[dbo].[TableA] as A
   join 
  [LoginInfo].[dbo].[TableA] as B 
  on  A.name=B.name;
해설 (1)

Sql SERVER 의 동일한 오류 메시지가 어려움을 겪고 난 이후 여러 조인 변경 했어요 order of the 조인 해결 it for me.

해설 (1)

저의 경우는 주어진 문제를 테이블에 앨리어스를 이름 내가 가진 것으로 나타났다. &quot oa"; sql Server 적용할 수 없는 것 같다.

해설 (0)

전 같으면 JDBC 에서 오류가 발생했습니다. 저의 모든 것을 점검됩니다 쿼리하지 멀쩡했어. 나는 켜졌음 아웃하거나 where 절에서 수감됐습니다.

where s.some_column = ?

I was 반군지역 의 was 및 인수 값이 null. 또한 같은 오류가 있는 경우 잘못된 이유는열 인터넷에 검색을 수행할 수 있는 구조를 쿼리하지 끝날 문제가 아니라, 내 경우에는 it& # 39 일은 아닙니다. 그냥 누군가를 돌아보 같은 문제에 직면할 수

해설 (0)

어떤 방법이 주효했는가 가져다줄래요 변경 (change my where 절 붙여넣습니다 서브케리 선택 하였다.

출처:

    DELETE FROM CommentTag WHERE [dbo].CommentTag.NoteId = [dbo].FetchedTagTransferData.IssueId

다음과 같이 사용된다.

    DELETE FROM CommentTag WHERE [dbo].CommentTag.NoteId = (SELECT NoteId FROM FetchedTagTransferData)
해설 (0)

39 m, i& SQL 을 처음 나온 것으로, 하지만 나는 이 일을 통해 이 문제를 없애기 위해 특별히 이번 프로젝트를 통해 쿼리하지 지정 찍기 및 파트 오류:. 예를 들어, 내가 만든 것은 확실히 내 스크립트입니다 시작했기 때문에 프로젝트 CTU SQL 프로젝트 [CTU SQL 프로젝트] 로 사용 등 내 첫 줄의 아래에 있습니다.

USE [CTU SQL Project]
SELECT Advisors.First_Name, Advisors.Last_Name...and so on.
해설 (2)

테이블의 필드를 사용할 수 없었던 내 오류가 있었다.

table1.field1 = &gt. 는 존재하지 않습니다.

table2.field1 = &gt. 올바른지

  • 표 Name.* 수정해야

내 사용하기 때문에 오류가 발생했습니다.

WITH RCTE AS (
   SELECT...
)
SELECT RCTE.Name, ...
FROM 
  RCTE INNER JOIN Customer
  ON RCTE.CustomerID = Customer.ID 

결합할 때 사용되는 다른 테이블.

해설 (0)

대신 같은 결합 테이블을 볼 수 있습니다

select 
  .... 
from 
   dkcd 
     right join 
                a
                  , b

이 노력해야 합니다

해설 (0)

난 역시 이 같은 전략을 통해 오류 및 됐지 해답이야 어려움을 겪고 있다 나는 내 대답을 하는 등 이 전략이 바로 확인하는 작업.

한 예로 슬라이드에서는 나는한다 내부 조인을 두 테이블 사이에 첫 번째 테이블에서 발생할 수 있는 두 개의 데이터 그러니까말이야 attaboy 후 왼쪽 외부 조인은 .해당 행 비어 있을 수 있습니다. 내부 및 외부 조인은 조인 결과를 얻을 수 있는 데이터 건너 테이블 너회가 함께 하는 대신, 미스 아웃해야 쉼표로 구분된 문법 테이블 간에 기본값입니다 원하는 대로 행의 참가하십시오.

use somedatabase
go 

select o.operationid, o.operatingdate, p.pasid, p.name as patientname, o.operationalunitid, f.name as operasjonsprogram,  o.theaterid as stueid, t.name as stuenavn, o.status as operasjonsstatus from operation o 
inner join patient p on o.operationid = p.operationid 
left outer join freshorganizationalunit f on f.freshorganizationalunitid = o.operationalunitid
left outer join theater t on t.theaterid = o.theaterid
where (p.Name like '%Male[0-9]%' or p.Name like '%KFemale [0-9]%')

첫 번째: 내부 조인 테이블 간에 데이터를 일치하는 것으로 할 수 있습니다. 두 번째 부분. 외부 조인은 진행하십시오 시도하시려면 읽어들이려면 data-in 다른 테이블뿐 그러나 이 않을 경우 해당 데이터 또는 외부 연결 잡을라는데 않은 결과 집합을 너회의 필터링합니다 테이블을 설정한 조건으로 일치시킵니다 의 조건자 / 조건.

해설 (0)

일부 테이블이 가입 안 잊었어? 만약 그렇지 않으면 일부 앨리어스를 사용해야 할 것입니다.

해설 (0)

만약 이 오류가 발생할 수 있는 ',' 이 '표' 를 통해 다시 업데이트하십시오 참가하십시오 오류가 발생하는 열 / 현장.

내 경우 이는 부족으로 인해 생성된 같은 오류가 있는 참가하십시오 '이' 자체를 알 수 없는 필드 (이를 안드리 abc. 아웃해야).

해설 (0)
SELECT DISTINCT
        phuongxa.maxa ,
        quanhuyen.mahuyen ,
        phuongxa.tenxa ,
        quanhuyen.tenhuyen ,
        ISNULL(dkcd.tong, 0) AS tongdkcd
FROM    phuongxa ,
        quanhuyen
        LEFT OUTER JOIN ( SELECT    khaosat.maxa ,
                                    COUNT(*) AS tong
                          FROM      khaosat
                          WHERE     CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011'
                                                              AND
                                                              'Sep 5 2011'
                          GROUP BY  khaosat.maxa
                        ) AS dkcd ON dkcd.maxa = maxa
WHERE   phuongxa.maxa  '99'
        AND LEFT(phuongxa.maxa, 2) = quanhuyen.mahuyen
ORDER BY maxa;
해설 (1)