0

MySQL ワークベンチでこの SQL ステートメントを実行中に問題が発生しました。誰かが私のために問題を指摘できますか?

SELECT concat(LocationName,' - ', StationName) AS LocationStation, EmpName AS '0000-0100', EmpName AS '0100-0200', EmpName AS '0200-0300', EmpName AS '0300-0400', EmpName AS '0400-0500', EmpName AS '0500-0600', EmpName AS '0600-0700', EmpName AS '0700-0800', EmpName AS '0800-0900', EmpName AS '0900-1000', EmpName AS '1000-1100', EmpName AS '1100-1200', FROM satsschema.employeeslot
WHERE LocationName = 'T2 PML'
and AllocationDate = '10-Aug' 
and (EmpTime >= '00:00:00' and EmpTime <= '12:00:00')

上記のステートメントにより、「SQL 構文にエラーがあります。適切な構文を使用するには、MySQL サーバーのバージョンに対応するマニュアルを確認してください。'FROM satsschema.employeeslot WHERE LocationName = 'T2 PML' and AllocationDate = ' 行 1 で。"

次に、すべてを入力する以外に、この行を短くする方法はありますか?

EmpName AS '0000-0100', EmpName AS '0100-0200', EmpName AS '0200-0300', EmpName AS '0300-0400', EmpName AS '0400-0500', EmpName AS '0500-0600', EmpName AS '0600-0700', EmpName AS '0700-0800', EmpName AS '0800-0900', EmpName AS '0900-1000', EmpName AS '1000-1100', EmpName AS '1100-1200', FROM satsschema.employeeslot

助けていただければ幸いです。

4

2 に答える 2

1

Remove the comma before FROM. It causes the error.

SELECT concat(LocationName,' - ', StationName) AS LocationStation, EmpName AS '0000-0100', EmpName AS '0100-0200', EmpName AS '0200-0300', EmpName AS '0300-0400', EmpName AS '0400-0500', EmpName AS '0500-0600', EmpName AS '0600-0700', EmpName AS '0700-0800', EmpName AS '0800-0900', EmpName AS '0900-1000', EmpName AS '1000-1100', EmpName AS '1100-1200' FROM satsschema.employeeslot
WHERE LocationName = 'T2 PML'
and AllocationDate = '10-Aug' 
and (EmpTime >= '00:00:00' and EmpTime <= '12:00:00')

Note that the error message said exactly where was the error.

In MySQL, the AS keyword is optional for column aliasing, so you may write EmpName '0000-0100' in place of EmpName AS '0000-0100'. I don't think there is a short solution to give more than one alias to one column as it's really not something that is often necessary.

于 2012-08-29T06:28:48.177 に答える
0

comma余分な前節を削除しfromます。

SELECT  concat(LocationName,' - ', StationName) AS LocationStation, 
        EmpName AS '0000-0100', 
        EmpName AS '0100-0200', 
        EmpName AS '0200-0300', 
        EmpName AS '0300-0400', 
        EmpName AS '0400-0500', 
        EmpName AS '0500-0600',
        EmpName AS '0600-0700', 
        EmpName AS '0700-0800', 
        EmpName AS '0800-0900', 
        EmpName AS '0900-1000', 
        EmpName AS '1000-1100',
        EmpName AS '1100-1200'   -- remove comma here
FROM satsschema.employeeslot
WHERE LocationName = 'T2 PML'
and AllocationDate = '10-Aug' 
and (EmpTime >= '00:00:00' and EmpTime <= '12:00:00')
于 2012-08-29T06:33:37.117 に答える