Когда в приведенном ниже примере указано несколько полей (Turnover и NetProfit), возникает ошибка, когда я заполняю mySqlDataAdapter в datatable. Затем я помещу его в datagridview. как это исправить?Множественный выбор в одиночном запросе, но более одного имени поля
данных:
FieldName | Ticker| Value| Year
--
Turnover | APPL | 1555 | 2010
Turnover | APPL | 1688 | 2011
Turnover | APPL | 1900 | 2012
Turnover | APPL | 1989 | 2013
NetProfit | APPL | 123 | 2010
NetProfit | APPL | 158 | 2011
NetProfit | APPL | 200 | 2012
NetProfit | APPL | 300 | 2013
Код:
Dim da As New MySqlDataAdapter(strSQL, cn)
Dim dt As New DataTable
da.Fill(dt) 'error occurred here!!! if more than 1 distinct fieldname
dgv1.DataSource = dt
Запрос:
SELECT
(SELECT format(Value,0) from Data WHERE Ticker = 'APPL' AND Year = 2010) As 'Y2010' ,
(SELECT format(Value,0) from Data WHERE Ticker = 'APPL' AND Year = 2011) As 'Y2011' ,
(SELECT format(Value,0) from Data WHERE Ticker = 'APPL' AND Year = 2012) As 'Y2012' ,
(SELECT format(Value,0) from Data WHERE Ticker = 'APPL' AND Year = 2013) As 'Y2013'
выход: (NO Чистая прибыль в таблице DATA) (Если таблица данных содержит только одно полевое имя, скажем, оборот, поэтому ниже результата для оборота)
Y2010| Y2011| Y2012| Y2013
--
1555 | 1688 | 1900 | 1989
Выход: (2 имя поля в таблице данных, т.е. оборота и чистой прибыли
(не удалось)
Мой Желаемая Выход: (как в настоящее время, у меня есть добавить критерий "WHERE Ticker =")
FieldName | Y2010 | Y2011 | Y2012 | Y2013
--
Turnover | 1555 | 1688 | 1900 | 1989
NetProfit | 123 | 158 | 200 | 300
Следующий шаг Желаемый выход: (для всех тикерами)
Ticker| FieldName | Y2010| Y2011| Y2012| Y2013
--
APPL | Turnover | 1555 | 1688 | 1900 | 1989
APPL | NetProfit | 123 | 158 | 200 | 300
MSFT | Turnover | 2555 | 2688 | 1600 | 3489
MSFT | NetProfit | 133 | 248 | 205 | 300
Извините, но я не вижу ошибки? – Steve
Я также не вижу ваш SQL, который вы пытаетесь запустить. Обе эти вещи очень важны, чтобы иметь возможность помочь. – Steve
мой SQL находится в вышеуказанном запросе. Он отлично работает только тогда, когда я назначил Тикер, и есть только одно полевое имя, либо оборот, либо netprofit, но не оба. – Trader