Ich habe eine Abfrage in r, mit rmysql Paket:Rmysql-Abfrage gibt nicht die richtigen Werte zurück?
sql.query = paste0("SELECT * FROM performance_db.pcTab WHERE
fk_ID_calc = (SELECT ID_calc FROM performance_db.calculationTab WHERE
turbine_model = '",input$t1,"' AND
op_mode = '",input$t2,"' AND
date_entered ='",input$t3,"')
AND sensor = 'P_el'"
)
spc = fetch(dbSendQuery(conn, sql.query), n = -1)
dies eine Tabelle zurück:
sql.query = paste0("SELECT * FROM performance_db.pcTab WHERE
fk_ID_calc = (SELECT ID_calc FROM performance_db.calculationTab WHERE
turbine_model = '",input$t1,"' AND
op_mode = '",input$t2,"' AND
date_entered ='",input$t3,"')
AND sensor = 'P_el' AND Air_density = 1"
)
:
head(spc)
ID_pc voltage_side sensor Air_density v2.5 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19
1 1 0 P_el 1.225 0 44 184 404 721 1165 1686 2107 2272 2300 2300 2300 2300 2300 2300 2300 2300 2300
2 2 0 P_el 1.000 NA 33 155 346 622 1010 1486 1967 2224 2286 2294 2300 2300 2300 2300 2300 2300 2300
3 3 0 P_el 1.030 NA 35 161 358 642 1041 1529 1999 2235 2291 2297 2300 2300 2300 2300 2300 2300 2300
4 4 0 P_el 1.060 NA 37 167 369 661 1072 1571 2036 2249 2295 2300 2300 2300 2300 2300 2300 2300 2300
5 5 0 P_el 1.090 NA 39 173 381 681 1103 1612 2060 2256 2300 2300 2300 2300 2300 2300 2300 2300 2300
6 6 0 P_el 1.120 NA 42 178 392 701 1134 1649 2080 2263 2300 2300 2300 2300 2300 2300 2300 2300 2300
Ich mag würde wie auf Air_density zusätzliche Filter hinzufügen Dies ist die Rückgabe nur einer Zeile enthält die Information für Air_density = 1:
ID_pc voltage_side sensor Air_density v2.5 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19
1 2 0 P_el 1 NA 33 155 346 622 1010 1486 1967 2224 2286 2294 2300 2300 2300 2300 2300 2300 2300
Aber wenn ich versuche, Basis auf anderen Air_densities zu filtern, gibt es nichts zurück. Wie, wenn die oben erwähnte Abfrage habe ich AND Air_density = 1.225
:
head(spc)
[1] ID_pc voltage_side sensor Air_density v2.5 v3 v4 v5 v6
[10] v7 v8 v9 v10 v11 v12 v13 v14 v15
[19] v16 v17 v18 v19
habe ich keine Ahnung, warum es passiert ist !!!
Warum Sie vergleichen (scheinbaren) auf String-Werte Dezimalstellen? – HoneyBadger
Ja, Sie sollten "AND Air_density = 1.225" schreiben, wie HoneyBadger sagte. –
@HoneyBadger, Es ändert nichts, wenn ich mag: 'AND Air_density = 1.225', es gibt die gleichen Werte zurück – Ali