-2

データグリッド ビューで同じ列を 2 回使用する 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' 

ReadingValueデータグリッドで列名を 2 回使用するにはどうすればよいですか。

4

2 に答える 2

1

まず、結合ではテーブル名の代わりにエイリアスを使用します。したがって、クエリが読みやすくなります。

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'

ReadingTypesDetails に 2 回参加したい場合は、次のように簡単に実行できます。

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
于 2013-10-28T12:24:32.477 に答える
0

datagridview で doublename が許可されている場合は、2 回使用することもできます。それ以外の場合は、「Last Day Meter Reading Copy」という別の名前を付けてください。

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 では、同じ列名を 2 回使用することはできません。しかし、MySQL では問題ありません。

于 2013-10-28T12:19:23.393 に答える