Я не очень опытный программист, поэтому, пожалуйста, несите меня! Мне нужно извлечь данные из таблицы (Chemie) на основе данных из другой таблицы (ProdDesigns). Очевидным ответом будет использование подзапросов. Что-то вроде этого:
SQL-подзапросы в C#
SELECT chemie.rmcode,
chemie.sio2,
chemie.al2o3,
chemie.fe2o3,
chemie.feo,
chemie.tio2,
chemie.cao,
chemie.mgo,
chemie.na2o,
chemie.k2o,
chemie.cr2o3,
chemie.p2o5,
chemie.sic,
chemie.c,
chemie.mno,
chemie.zro2,
chemie.b2o3
FROM chemie
INNER JOIN proddesigns
ON chemie.rmcode = proddesigns.rmcode
WHERE chemie.rmcode = (SELECT proddesigns.rmcode
FROM proddesigns
WHERE proddesigns.batchno = 1234)
Проблема заключается в том, что подмножество данных из таблицы ProdDesigns ВСЕГДА будет несколько записей, так что я получаю сообщение об ошибке «В лучшем случае одна запись может быть возвращен этим подзапросом» .so I «м думать об использовании временных таблиц и попытался следующее:
conn.Open();
OleDbCommand cmdRM = null;
cmdRM = conn.CreateCommand();
cmdRM.CommandText = (@"SELECT * INTO ##tempTest FROM ProdDesigns WHERE batchNo = 1234");
cmdRM.ExecuteNonQuery();
dataAdapter2 = new OleDbDataAdapter(@"SELECT Chemie.RMCode, Chemie.SiO2, Chemie.Al2O3, Chemie.Fe2O3, Chemie.FeO, Chemie.TiO2, Chemie.CaO, Chemie.MgO, Chemie.Na2O, Chemie.K2O, Chemie.Cr2O3, Chemie.P2O5, Chemie.SiC, Chemie.C, Chemie.MnO, Chemie.ZrO2, Chemie.B2O3
FROM Chemie INNER JOIN ##tempTest ON Chemie.RMCode = ##tempTest.rmCode
WHERE ((Chemie.RMCode)= ##tempTest.rmCode)", conn);
dataAdapter2.Fill(dataS2, "Chemie");
dtChem = dataS2.Tables["Chemie"];
Любая обратная связь будет высоко оценена !!
Хорошее форматирование всегда ваш друг .. –
Это мой первый пост тоже, поэтому я извиняюсь за плохое форматирование, отступы и т. Д. – BabyDoll
Пожалуйста, не извиняйтесь. Мы все прошли таким образом. Вы можете прочитать [FAQ] и [ask] как начало ';)' –