You’re table start and table end markup needs to be outside of the loop
if ($preisvergleich->have_posts()) {
// ouptut start of table here;
?>
<table>
<thead>
<tr>
<th>heading 1</th>
<th>etc...</th>
</tr>
</thead>
<tbody>
<?php
while ($preisvergleich->have_posts()) {
$preisvergleich->the_post();
// output each row of the table here
} // end while
// output end of table here
?>
</tbody>
</table>
<?php
} // end if have posts