What causes black shading errors?
You use smooth shading on a non-manifold mesh, which does not work properly. 

Non-manifold means e.g. that some edges have more than two faces, and therefore the surface is not closed but has forks. It is impossible for Blender to tell how to shade these faces properly.


For your mesh, one way is to seperate the floors into a new object. This way the mesh will be manifold again, but unconnected.


Another option is to assign hard edges, e.g. using the Edge Split Modifier. This way some edges are shaded flat and others smooth. Flat shading works with non-manifold mesh the same as with manifold mesh. Because in this case the non-manifold spots have large angles, shading problems will be solved.