I’m not a very experienced programmer so please bear with me! I have to extract data from a table (Chemie) based on data from another table (ProdDesigns). The obvious answer would be to use sub queries. Something like this:
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)
The problem is that the subset of data from table ProdDesigns will ALWAYS be multiple records, so I get the error “At most one record can be returned by this sub query”.So I’m thinking of using temporary tables and attempted the following:
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"];
Any feedback would be greatly appreciated!!
;)