2013-10-28 7 views
-2

SQL 문을 쓰고 있는데 여기에서 datagrid 뷰에서 같은 열을 두 번 사용하고 싶습니다. 내가 DataGrid를 두 번 열 이름 ReadingValue 사용 방법SQL 쿼리에서 동일한 열을 두 번 사용하십시오.

SELECT ElectricityMachinePanelDetails.MachineDescription AS "Machine Name", 
     ReadingValue AS "Last Day Meter Reading" 
FROM ElectricityDailyMeterReadingDetails 
INNER JOIN ElectricityMachinePanelDetails ON ElectricityMachinePanelDetails.MachinePanelID = ElectricityDailyMeterReadingDetails.MachinePanelID 
INNER JOIN ReadingTypesDetails ON ElectricityDailyMeterReadingDetails.ReadingTypeID = ReadingTypesDetails.ReadingTypeID 
WHERE ReadingCategoryID = 'RC001' AND 
     ReadingTypesDetails.ReadingTypeID = 'RT001' 

:

여기 내 쿼리입니다.

답변

0

DataGridview에서 이중 문자를 허용하는 경우 두 번만 사용할 수 있습니다. 그렇지 않으면 "마지막 날 측정기 독서 카피"라는 다른 이름을 지정하십시오.

Select 
ElectricityMachinePanelDetails.MachineDescription AS "Machine Name", 
ReadingValue AS "Last Day Meter Reading", 
ReadingValue AS "Last Day Meter Copy" 
from ElectricityDailyMeterReadingDetails 
INNER JOIN ElectricityMachinePanelDetails on ElectricityMachinePanelDetails.MachinePanelID = ElectricityDailyMeterReadingDetails.MachinePanelID 
INNER JOIN ReadingTypesDetails ON ElectricityDailyMeterReadingDetails.ReadingTypeID = ReadingTypesDetails.ReadingTypeID where ReadingCategoryID = 'RC001' AND ReadingTypesDetails.ReadingTypeID = 'RT001' 

MSSQL에서는 두 번 같은 열 이름을 사용할 수 없습니다. 하지만 MySQL에서는 괜찮습니다.

1

우선, 조인에서 테이블 이름 대신 별칭을 사용하십시오. 따라서 귀하의 질의를보다 쉽게 ​​읽을 수 있습니다. 두 번 ReadingTypesDetails에 가입하려면

select 
    empd.MachineDescription as "Machine Name", 
    rtd.ReadingValue AS "Last Day Meter Reading" 
from ElectricityDailyMeterReadingDetails as edmrd 
    inner join ElectricityMachinePanelDetails as empd on empd.MachinePanelID = edmrd.MachinePanelID 
    inner join ReadingTypesDetails as rtd on rtd.ReadingTypeID = edmrd.ReadingTypeID 
where 
    rtd.ReadingCategoryID = 'RC001' and 
    rtd.ReadingTypesDetails.ReadingTypeID = 'RT001' 

, 당신은 쉽게이 작업을 수행 할 수 있습니다

select 
    empd.MachineDescription as "Machine Name", 
    rtd.ReadingValue as "Last Day Meter Reading", 
    rtd2.ReadingValue as "Another Reading" 
from ElectricityDailyMeterReadingDetails as edmrd 
    inner join ElectricityMachinePanelDetails as empd on empd.MachinePanelID = edmrd.MachinePanelID 
    inner join ReadingTypesDetails as rtd on rtd.ReadingTypeID = edmrd.ReadingTypeID 
    inner join ReadingTypesDetails as rtd2 on rtd2.ReadingTypeID = edmrd.ReadingTypeID 
where 
    rtd.ReadingCategoryID = 'RC001' and 
    rtd.ReadingTypesDetails.ReadingTypeID = 'RT001' and 
    --rtd2.ReadingCategoryID = '????' and 
    --rtd2.ReadingTypesDetails.ReadingTypeID = '????' and 
+0

두 번 테이블에 가입 할 필요가 없습니다 그것. 단순히 rtd.ReadingValue를 두 번 사용할 수 있습니다. –

+1

@ KayNelson OP는 같은 테이블의 값을 두 번 사용하는 방법을 알고 있지만 동일한 테이블을 두 번 결합하는 방법을 알지 못한다고 가정합니다. 왜 그가 절대적으로 같은 가치를 두 번 필요로하는지 모르겠다. –

관련 문제