Я пишу SQL уже несколько лет на различных СУБД (Oracle, SQL Server, MySQL, Access и т. Д.), И одна вещь, которая меня всегда поражала, это, по-видимому, отсутствие соглашения об именах, когда речь заходит о таблицах.& псевдонимы подзапроса.
Я всегда читал, что альтернативы таблиц - это путь, и хотя я не всегда использовал их, когда я делаю, я всегда зацикливаюсь на том, какие имена использовать.Я перешел от использования описательных имен к отдельным символам, таким как 't', 's' или 'q', и вернулся снова.Возьмем, к примеру, этот запрос MS Access, который я только что написал, я все еще не совсем доволен псевдонимами, которые я использую, даже с таким относительно простым запросом, как этот, я все еще не думаю, что это так просто читать:
SELECT stkTrans.StockName
, stkTrans.Sedol
, stkTrans.BookCode
, SUM(IIF(stkTrans.TransactionType="S", -1 * stkTrans.Units, 0)) AS [Sell Shares]
, SUM(IIF(stkTrans.TransactionType="B", stkTrans.Units, 0)) AS [Buy Shares]
, SUM(IIF(stkTrans.TransactionType="B", -1 * stkTrans.Price, 0) * stkTrans1.Min_Units) + SUM(IIF(stkTrans.TransactionType="S", stkTrans.Price, 0) * stkTrans1.Min_Units) AS [PnL]
, "" AS [Comment]
FROM tblStockTransactions AS stkTrans
INNER JOIN (SELECT sT1.BookCode
, sT1.Sedol
, MIN(sT1.Units) AS [Min_Units]
FROM tblStockTransactions sT1
GROUP BY sT1.BookCode, sT1.Sedol
HAVING (SUM(IIF(sT1.TransactionType="S", 1, 0)) > 0
AND SUM(IIF(sT1.TransactionType="B", 1, 0)) > 0)) AS stkTrans1 ON (stkTrans.BookCode = stkTrans1.BookCode) AND (stkTrans.Sedol = stkTrans1.Sedol)
GROUP BY stkTrans.BookCode, stkTrans.StockName, stkTrans.Sedol;
Что вы думаете?Я подумал, что выкину его туда, чтобы узнать, что другие чувствуют по этому поводу.